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获取糗百图片代码实例
Dec 18 Python
python逐行读取文件内容的三种方法
Jan 20 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 Python
Python 实现在文件中的每一行添加一个逗号
Apr 29 Python
Python3.6实现连接mysql或mariadb的方法分析
May 18 Python
python中的变量如何开辟内存
Jun 26 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
python抓取多种类型的页面方法实例
Nov 20 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 23 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用GD库生成高质量的缩略图片
2011/03/09 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
php实现天干地支计算器示例
2014/03/14 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
详解Vuex中mapState的具体用法
2017/09/28 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
代码实例讲解python3的编码问题
2019/07/08 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
培训讲师邀请函
2014/01/10 职场文书
高中英语教学反思
2014/02/04 职场文书
农村文化活动总结
2014/08/28 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
幼儿园教师辞职信
2019/06/21 职场文书