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中的split()函数的使用方法
Apr 07 Python
python Django批量导入数据
Mar 25 Python
详解MySQL数据类型int(M)中M的含义
Nov 20 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
python数字图像处理之高级形态学处理
Apr 27 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
学生信息管理系统Python面向对象版
Jan 30 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
Python中flatten( ),matrix.A用法说明
Jul 05 Python
python七种方法判断字符串是否包含子串
Aug 18 Python
Python中三种花式打印的示例详解
Mar 19 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用数组返回无限分类的列表数据的代码
2010/08/08 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
JS二分查找算法详解
2017/11/01 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
python实现机器学习之元线性回归
2018/09/06 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
师范生自荐信范文
2013/10/06 职场文书
经销商年会策划方案
2014/05/29 职场文书
工会主席事迹材料
2014/06/03 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
介绍信的格式
2015/01/30 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
单位更名证明
2015/06/18 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL