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操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
python的依赖管理的实现
May 14 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
python输出带颜色字体实例方法
Sep 01 Python
python解析多层json操作示例
Dec 30 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 15 Python
Python同时迭代多个序列的方法
Jul 28 Python
利用python 读写csv文件
Sep 10 Python
python 下划线的不同用法
Oct 24 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 Python
Python常用配置文件ini、json、yaml读写总结
Jul 09 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 echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
解密效果
2006/06/23 Javascript
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
2018/07/09 jQuery
详解Vue.directive 自定义指令
2019/03/27 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
python实现感知器算法(批处理)
2019/01/18 Python
Python基础知识点 初识Python.md
2019/05/14 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
django的autoreload机制实现
2020/06/03 Python
Python爬取网页信息的示例
2020/09/24 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
2014年党员自我剖析材料
2014/10/07 职场文书
小学班主任培训心得体会
2016/01/07 职场文书