python实现网站的模拟登录


Posted in Python onJanuary 04, 2016

本文主要用python实现了对网站的模拟登录。通过自己构造post数据来用Python实现登录过程。

当你要模拟登录一个网站时,首先要搞清楚网站的登录处理细节(发了什么样的数据,给谁发等...)。我是通过HTTPfox来抓取http数据包来分析该网站的登录流程。同时,我们还要分析抓到的post包的数据结构和header,要根据提交的数据结构和heander来构造自己的post数据和header。

分析结束后,我们要构造自己的HTTP数据包,并发送给指定url。我们通过urllib2等几个模块提供的API来实现request请求的发送和相应的接收。
大部分网站登录时需要携带cookie,所以我们还必须设置cookie处理器来保证cookie。

具体代码和讲解如下

#!/usr/bin/python 
 
import HTMLParser 
import urlparse 
import urllib 
import urllib2 
import cookielib 
import string 
import re 
 
#登录的主页面 
hosturl = '******' //自己填写 
#post数据接收和处理的页面(我们要向这个页面发送我们构造的Post数据) 
posturl = '******' //从数据包中分析出,处理post请求的url 
 
#设置一个cookie处理器,它负责从服务器下载cookie到本地,并且在发送请求时带上本地的cookie 
cj = cookielib.LWPCookieJar() 
cookie_support = urllib2.HTTPCookieProcessor(cj) 
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler) 
urllib2.install_opener(opener) 
 
#打开登录主页面(他的目的是从页面下载cookie,这样我们在再送post数据时就有cookie了,否则发送不成功) 
h = urllib2.urlopen(hosturl) 
 
#构造header,一般header至少要包含一下两项。这两项是从抓到的包里分析得出的。 
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1', 
  'Referer' : '******'} 
#构造Post数据,他也是从抓大的包里分析得出的。 
postData = {'op' : 'dmlogin', 
  'f' : 'st', 
  'user' : '******', //你的用户名 
  'pass' : '******', //你的密码,密码可能是明文传输也可能是密文,如果是密文需要调用相应的加密算法加密 
  'rmbr' : 'true', //特有数据,不同网站可能不同 
  'tmp' : '0.7306424454308195' //特有数据,不同网站可能不同 
 
  } 
 
#需要给Post数据编码 
postData = urllib.urlencode(postData) 
 
#通过urllib2提供的request方法来向指定Url发送我们构造的数据,并完成登录过程 
request = urllib2.Request(posturl, postData, headers) 
print request 
response = urllib2.urlopen(request) 
text = response.read() 
print text

领取干货:零基础入门学习python视频教程

 以上就是本文的全部内容,希望大家相互交流相互学习,共同进步!

Python 相关文章推荐
Python中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
利用Python中的mock库对Python代码进行模拟测试
Apr 16 Python
python实现简单中文词频统计示例
Nov 08 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
答题辅助python代码实现
Jan 16 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
详解python3中tkinter知识点
Jun 21 Python
python绘制中国大陆人口热力图
Nov 07 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 #Python
简单介绍Python中的几种数据类型
Jan 02 #Python
简单实现python爬虫功能
Dec 31 #Python
python实现颜色空间转换程序(Tkinter)
Dec 31 #Python
基于python的Tkinter实现一个简易计算器
Dec 31 #Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
Dec 31 #Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
Dec 31 #Python
You might like
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
如何用Python合并lmdb文件
2018/07/02 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
教师申诉制度
2014/01/29 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
标准单位租车协议书
2014/09/23 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python