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使用socket连接远程服务器的方法
Apr 29 Python
win10下Python3.6安装、配置以及pip安装包教程
Oct 01 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
python实现简单学生信息管理系统
Apr 09 Python
Python Dataframe常见索引方式详解
May 27 Python
python实现简单遗传算法
Sep 18 Python
用python写PDF转换器的实现
Oct 29 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 Python
python 中yaml文件用法大全
Jul 04 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
main.php
2006/12/09 PHP
php array_intersect()函数使用代码
2009/01/14 PHP
一个简单php扩展介绍与开发教程
2010/08/19 PHP
php的curl封装类用法实例
2014/11/07 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
理解Koa2中的async&await的用法
2018/02/05 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
Python实现12306火车票抢票系统
2019/07/04 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
大学生大二自我鉴定
2013/10/28 职场文书
高中毕业生生活的自我评价
2013/12/08 职场文书
车间主任岗位职责
2015/02/03 职场文书
单位接收证明格式
2015/06/18 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题