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中处理字符串之ljust()方法的使用简介
May 19 Python
Python的装饰器用法学习笔记
Jun 24 Python
Python3.x对JSON的一些操作示例
Sep 01 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
Python多线程获取返回值代码实例
Feb 17 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
python能开发游戏吗
Jun 11 Python
Python代码注释规范代码实例解析
Aug 14 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获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
微信小程序 动态绑定事件并实现事件修改样式
2017/04/13 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
Python3字符串学习教程
2015/08/20 Python
python通过文件头判断文件类型
2015/10/30 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
Python实现括号匹配方法详解
2020/02/10 Python
css sprite简单实例
2016/05/23 HTML / CSS
体育教师工作总结的自我评价
2013/10/10 职场文书
效能监察建议书
2014/05/19 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
python可视化大屏库big_screen示例详解
2021/11/23 Python
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python
MySQL去除密码登录告警的方法
2022/04/20 MySQL