Python实现模拟登录及表单提交的方法


Posted in Python onJuly 25, 2015

本文实例讲述了Python实现模拟登录及表单提交的方法。分享给大家供大家参考。具体实现方法如下:

# -*- coding: utf-8 -*- 
import re 
import urllib 
import urllib2 
import cookielib 
#获取CSDN博客标题和正文 
url = "http://blog.csdn.net/[username]/archive/2010/07/05/5712850.aspx" 
sock = urllib.urlopen(url) 
html = sock.read() 
sock.close() 
content = re.findall('(?<=blogstory">).*(?=<p class="right artical)', html, re.S) 
content = re.findall('<script.*>.*</script>(.*)', content[0], re.S) 
title = re.findall('(?<=<title>)(.*)-.* - CSDN.*(?=</title>)', html, re.S) 
#根据上文获取内容新建表单值 
blog = {'spBlogTitle': title[0].decode('utf-8').encode('gbk'), #百度博客标题 
    'spBlogText': content[0].decode('utf-8').encode('gbk'),#百度博客内容 
    'ct': "1", 
    'cm': "1"} 
del content 
del title 
#模拟登录 
cj = cookielib.CookieJar() 
#用户名和密码 
post_data = urllib.urlencode({'username': '[username]', 'password': '[password]', 'pwd': '1'}) 
#登录路径 
path = 'https://passport.baidu.com/?login' 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
opener.addheaders = [('User-agent', 'Opera/9.23')] 
urllib2.install_opener(opener) 
req = urllib2.Request(path, post_data) 
conn = urllib2.urlopen(req) 
#获取百度发布博客的认证令牌 
bd = urllib2.urlopen(urllib2.Request('http://hi.baidu.com/[username]/creat/blog')).read() 
bd = re.findall('(?<=bdstoken\" value=\").*(?=ct)', bd, re.S) 
blog['bdstoken'] = bd[0][:32] 
#设置分类名 
blog['spBlogCatName'] = 'php' 
#比较表单发布博客 
req2 = urllib2.Request('http://hi.baidu.com/[username]/commit', urllib.urlencode(blog)) 
#查看表单提交后返回内容 
print urllib2.urlopen(req2).read() 
#请将[username]/[password]替换为您的真实用户名和密码

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
Python获取远程文件大小的函数代码分享
May 13 Python
实例说明Python中比较运算符的使用
May 13 Python
django使用图片延时加载引起后台404错误
Apr 18 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
Python GUI学习之登录系统界面篇
Aug 21 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
基于python实现模拟数据结构模型
Jun 12 Python
基于python实现删除指定文件类型
Jul 21 Python
Python实现自动签到脚本功能
Aug 20 Python
Python中使用subprocess库创建附加进程
May 11 Python
python单向链表实例详解
May 25 Python
Python基于有道实现英汉字典功能
Jul 25 #Python
Python实现简单的代理服务器
Jul 25 #Python
Python实现截屏的函数
Jul 25 #Python
Python基于PycURL自动处理cookie的方法
Jul 25 #Python
Python基于PycURL实现POST的方法
Jul 25 #Python
Python实现对excel文件列表值进行统计的方法
Jul 25 #Python
Python自动扫雷实现方法
Jul 25 #Python
You might like
用PHP创建PDF中文文档
2006/10/09 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
document.forms用法示例介绍
2014/06/26 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
理解JavaScript原型链
2016/10/25 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
python selenium 弹出框处理的实现
2019/02/26 Python
Python实现元素等待代码实例
2019/11/11 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
出国留学介绍信
2014/01/13 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
行政诉讼答辩状
2015/05/21 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书