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 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
Nov 19 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
python turtle库画一个方格和圆实例
Jun 27 Python
Python Django 命名空间模式的实现
Aug 09 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
python运用pygame库实现双人弹球小游戏
Nov 25 Python
pandas中read_csv的缺失值处理方式
Dec 19 Python
Python如何获取文件指定行的内容
May 27 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 Python
Python标准库pathlib操作目录和文件
Nov 20 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&amp;MYSQL分页原理及实现
2007/01/02 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
Python collections模块使用方法详解
2019/08/28 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
CSS3实现自定义Checkbox特效实例代码
2017/04/24 HTML / CSS
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
制定岗位职责的原则
2013/11/08 职场文书
销售简历自我评价
2014/01/24 职场文书
运动会入场解说词300字
2014/01/25 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
Redis中一个String类型引发的惨案
2021/07/25 Redis
mysql中整数数据类型tinyint详解
2021/12/06 MySQL
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android
MySQL自定义函数及触发器
2022/08/05 MySQL