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中set使用
Jun 30 Python
简单了解OpenCV是个什么东西
Nov 10 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
python中的逆序遍历实例
Dec 25 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
如何解决tensorflow恢复模型的特定值时出错
Feb 06 Python
Python数据可视化图实现过程详解
Jun 12 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 Python
Python中的套接字编程是什么?
Jun 21 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程序中的常见漏洞进行攻击
2006/10/09 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
jquery animate 动画效果使用说明
2009/11/04 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python 多线程的实例详解
2017/09/07 Python
Python基本数据结构之字典类型dict用法分析
2019/06/08 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
英国行业制服供应商:Alexandra
2019/09/14 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
《珍珠泉》教学反思
2014/02/20 职场文书
股东协议书
2014/04/14 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
食品安全汇报材料
2014/08/18 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
营销总监岗位职责
2014/09/16 职场文书
会计求职信怎么写
2015/03/20 职场文书
高一数学教学反思
2016/02/18 职场文书
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python
使用Django框架创建项目
2022/06/10 Python