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字符串和文件操作常用函数分析
Apr 08 Python
Python编程中装饰器的使用示例解析
Jun 20 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
10个Python面试常问的问题(小结)
Nov 20 Python
如何理解python对象
Jun 21 Python
python 使用elasticsearch 实现翻页的三种方式
Jul 31 Python
如何在python中处理配置文件代码实例
Sep 27 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
May 12 Python
python井字棋游戏实现人机对战
Apr 28 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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
php实现的CSS更新类实例
2014/09/22 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
PHP之header函数详解
2021/03/02 PHP
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
jquery获取节点名称
2015/04/26 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
基于Django的python验证码(实例讲解)
2017/10/23 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
Django 使用logging打印日志的实例
2018/04/28 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Python Map 函数的使用
2020/08/28 Python
python statsmodel的使用
2020/12/21 Python
python 实现有道翻译功能
2021/02/26 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
市场开发与营销专业求职信
2013/12/31 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书