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目录操作之python遍历文件夹后将结果存储为xml
Jan 27 Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 Python
使用Python的Flask框架来搭建第一个Web应用程序
Jun 04 Python
python检查URL是否正常访问的小技巧
Feb 25 Python
python实现报表自动化详解
Nov 16 Python
python机器人行走步数问题的解决
Jan 29 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
Feb 08 Python
python实现抠图给证件照换背景源码
Aug 20 Python
python程序 创建多线程过程详解
Sep 23 Python
在pycharm中实现删除bookmark
Feb 14 Python
python json 递归打印所有json子节点信息的例子
Feb 27 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
JavaScript获得url查询参数的方法
2015/07/02 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
python3 mmh3安装及使用方法
2019/10/09 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
python切割图片的示例
2020/11/12 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
ktv收银员岗位职责
2013/12/16 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
银行委托书范本
2014/09/28 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL
Python办公自动化解决world文件批量转换
2021/09/15 Python