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 相关文章推荐
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 Python
Django imgareaselect手动剪切头像实现方法
May 26 Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
Python3搭建http服务器的实现代码
Feb 11 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
python数据抓取3种方法总结
Feb 07 Python
Python图像处理之图像拼接
Apr 28 Python
Python实现灰色关联分析与结果可视化的详细代码
Mar 25 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 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调用数据库的存贮过程
2006/10/09 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
Javascript Global对象
2009/08/13 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
2014/03/21 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
学校元旦晚会方案
2014/02/19 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
公司承诺函范文
2015/01/21 职场文书
慰问信格式
2015/02/14 职场文书
综合素质评价自我评价
2015/03/06 职场文书
2016新年晚会开场白
2015/12/03 职场文书
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers