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对字典进行排序实例
Sep 25 Python
python中的闭包用法实例详解
May 05 Python
Python ftp上传文件
Feb 13 Python
python下10个简单实例代码
Nov 15 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
Python列表的切片实例讲解
Aug 20 Python
使用python实现对元素的长截图功能
Nov 14 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
python海龟绘图之画国旗实例代码
Nov 11 Python
python绘图pyecharts+pandas的使用详解
Dec 13 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
php实现快速排序法函数代码
2012/08/27 PHP
php 判断数组是几维数组
2013/03/20 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
jupyter 导入csv文件方式
2020/04/21 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
后勤主管工作职责
2013/12/07 职场文书
房产转让协议书
2014/04/11 职场文书
文明倡议书范文
2014/04/15 职场文书
2014年新教师工作总结
2014/11/08 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
python manim实现排序算法动画示例
2022/08/14 Python