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之再深点,更懂list
Sep 20 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
使用matplotlib画散点图的方法
May 25 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
pow在python中的含义及用法
Jul 11 Python
使用Python实现Wake On Lan远程开机功能
Jan 22 Python
Python *args和**kwargs用法实例解析
Mar 02 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-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
php xhprof使用实例详解
2019/04/15 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
javascript 数组排序函数
2009/08/20 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
js实现扫雷源代码
2020/11/27 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
Python实现在线音乐播放器
2017/03/03 Python
浅谈python中get pass用法
2019/03/19 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
Python调用JavaScript代码的方法
2020/10/27 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
异常和异常类的概念
2014/09/12 面试题
儿科护士实习自我鉴定
2013/10/17 职场文书
幼儿师范毕业生自荐信
2013/11/09 职场文书
关于读书的演讲稿
2014/05/07 职场文书
党支部先进事迹材料
2014/12/24 职场文书
超市采购员岗位职责
2015/04/07 职场文书
四年级数学教学反思
2016/02/16 职场文书
Nginx快速入门教程
2021/03/31 Servers
Windows7下FTP搭建图文教程
2022/08/05 Servers