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 24 Python
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
Python、Javascript中的闭包比较
Feb 04 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
python基础知识小结之集合
Nov 25 Python
Python网络爬虫神器PyQuery的基本使用教程
Feb 03 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
python生成lmdb格式的文件实例
Nov 08 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
Python基础之字典常见操作经典实例详解
Feb 26 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
一些PHP写的小东西
2006/12/06 PHP
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
原生js实现放大镜
2017/02/20 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
js图片无缝滚动插件使用详解
2020/05/26 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
Python循环结构的应用场景详解
2019/07/11 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
2014年三八妇女节活动总结
2014/03/01 职场文书
学习两会精神心得范文
2014/03/17 职场文书
团代会宣传工作方案
2014/05/08 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android