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中的下划线详解
Jun 24 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
记录Python脚本的运行日志的方法
Jun 05 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
keras处理欠拟合和过拟合的实例讲解
May 25 Python
Python接口自动化测试框架运行原理及流程
Nov 30 Python
Python实现给PDF添加水印的方法
Jan 25 Python
Pycharm 跳转回之前所在页面的操作
Feb 05 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
url decode problem 解决方法
2011/12/26 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
python实现五子棋游戏
2019/06/18 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
使用Python函数进行模块化的实现
2019/11/15 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
存储过程和sql语句的优缺点
2014/07/02 面试题
.net软件工程师面试题
2015/03/31 面试题
校园十佳歌手策划书
2014/01/22 职场文书
课例研修方案
2014/05/31 职场文书
空气环保标语
2014/06/12 职场文书
完整版商业计划书
2014/09/15 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers