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回调函数的使用方法
Jan 23 Python
Python实现网站文件的全备份和差异备份
Nov 30 Python
Python常用知识点汇总
May 08 Python
Django自定义认证方式用法示例
Jun 23 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
python实现百度语音识别api
Apr 10 Python
Python中三元表达式的几种写法介绍
Mar 04 Python
超简单使用Python换脸实例
Mar 27 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
Python-Seaborn热图绘制的实现方法
Jul 15 Python
python 读取数据库并绘图的实例
Dec 03 Python
python实现数字炸弹游戏程序
Jul 17 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数组去除空值函数分享
2015/02/02 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
php版微信自定义回复功能示例
2016/12/05 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
大学生优秀团员事迹材料
2014/01/30 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
运动会稿件100字
2014/02/21 职场文书
欢度春节标语
2014/07/01 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
工作态度不好检讨书
2015/05/06 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
Elasticsearch 数据类型及管理
2022/04/19 Python