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获取糗百图片代码实例
Dec 18 Python
使用Python开发windows GUI程序入门实例
Oct 23 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
python 检查文件mime类型的方法
Dec 08 Python
python学生管理系统学习笔记
Mar 19 Python
详解Django admin高级用法
Nov 06 Python
Python object类中的特殊方法代码讲解
Mar 06 Python
opencv 图像加法与图像融合的实现代码
Jul 08 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 Python
python基础之类属性和实例属性
Oct 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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
Bootstrap实现登录校验表单(带验证码)
2016/06/23 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
jQuery实现日历效果
2020/09/11 jQuery
Python isinstance判断对象类型
2008/09/06 Python
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
集团薪酬管理制度
2014/01/13 职场文书
yy生日主持词
2014/03/20 职场文书
学生操行评语大全
2014/04/24 职场文书
宣传普通话标语
2014/06/27 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
先进班组材料范文
2014/12/25 职场文书
小学少先队活动总结
2015/05/08 职场文书
2016春节放假通知范文
2015/08/18 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS