《python实现模拟登录》由会员分享,可在线阅读,更多相关《python实现模拟登录(3页珍藏版)》请在金锄头文库上搜索。
1、python 实现模拟登录本文主要用python 实现了对网站的模拟登录。通过自己构造post 数据来用Python 实现登录过程。当你要模拟登录一个网站时,首先要搞清楚网站的登录处理细节发了什么样的数据,给谁发等.。我是通过 fox 来抓取 数据包来分析该网站的登录流程。同时,我们还要分析抓到的post 包的数据构造和header,要依据提交的数据构造和heander 来构造自己的post 数据和header。分析完毕后,我们要构造自己的 数据包,并发送给指定url。我们通过urllib2 等几个模块供给的API 来实现request 恳求的发送和相应的接收。大局部网站登录时需要携带cook
2、ie,所以我们还必需设置cookie 处理器来保证cookie。具体代码和讲解如下#!/usr/bin/pythonimport HTMLParser import urlparse import urllib import urllib2 import cookielib import string import re#登录的主页面hosturl = ”*” /自己填写#post 数据接收和处理的页面我们要向这个页面发送我们构造的Post 数据 posturl = ”*” /从数据包中分析出,处理post 恳求的url#设置一个cookie 处理器,它负责从效劳器下载 cookie 到本地,
3、并且在发送恳求时带上本地的cookiecj = cookielib.LWPCookieJar()cookie_support = urllib2. CookieProcessor(cj)opener = urllib2.build_opener(cookie_support, urllib2. Handler) urllib2.install_opener(opener)#翻开登录主页面他的目的是从页面下载cookie,这样我们在再送post 数据时就有 cookie 了,否那么发送不成功h = urllib2.urlopen(hosturl)#构造header,一般header 至少要包含一
4、下两项。这两项是从抓到的包里分析得出的。headers = ”User-Agent” : ”Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20210101 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 requestresponse = urllib2.urlopen(request)text = response.read() print text