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支持断点续传的多线程下载示例
Jan 16 Python
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 Python
使用SAE部署Python运行环境的教程
May 05 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
浅析Python四种数据类型
Sep 26 Python
Python PO设计模式的具体使用
Aug 16 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
Python 炫技操作之合并字典的七种方法
Apr 10 Python
python中使用.py配置文件的方法详解
Nov 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
十大“创意”战术!
2020/03/04 星际争霸
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
jquery实现的美女拼图游戏实例
2015/05/04 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
js 颜色选择插件
2017/01/23 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
Python之web模板应用
2017/12/26 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
2018/05/25 Python
python斐波那契数列的计算方法
2018/09/27 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
django-csrf使用和禁用方式
2020/03/13 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
综合实践活动总结
2014/05/05 职场文书
五水共治一句话承诺
2014/05/30 职场文书
放弃继承权公证书
2015/01/23 职场文书
大学入学感言
2015/08/01 职场文书
MySQL中order by的执行过程
2022/06/05 MySQL