本文主要用python實現了對網站的模擬登陸。經過本身構造post數據來用Python實現登陸過程。
當你要模擬登陸一個網站時,首先要搞清楚網站的登陸處理細節(發了什麼樣的數據,給誰發等...)。我是經過HTTPfox來抓取http數據包來分析該網站的登陸流程。同時,咱們還要分析抓到的post包的數據結構和header,要根據提交的數據結構和heander來構造本身的post數據和header。
分析結束後,咱們要構造本身的HTTP數據包,併發送給指定url。咱們經過urllib2等幾個模塊提供的API來實現request請求的發送和相應的接收。
大部分網站登陸時須要攜帶cookie,因此咱們還必須設置cookie處理器來保證cookie。
具體代碼和講解以下
-
- import HTMLParser
- import urlparse
- import urllib
- import urllib2
- import cookielib
- import string
- import re
-
- hosturl = '******' //本身填寫
- posturl = '******' //從數據包中分析出,處理post請求的url
-
- cj = cookielib.LWPCookieJar()
- cookie_support = urllib2.HTTPCookieProcessor(cj)
- opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
- urllib2.install_opener(opener)
-
- h = urllib2.urlopen(hosturl)
-
- headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',
- 'Referer' : '******'}
- postData = {'op' : 'dmlogin',
- 'f' : 'st',
- 'user' : '******', //你的用戶名
- 'pass' : '******', //你的密碼,密碼多是明文傳輸也多是密文,若是是密文須要調用相應的加密算法加密
- 'rmbr' : 'true', //特有數據,不一樣網站可能不一樣
- 'tmp' : '0.7306424454308195' //特有數據,不一樣網站可能不一樣
-
- }
-
- postData = urllib.urlencode(postData)
-
- request = urllib2.Request(posturl, postData, headers)
- print request
- response = urllib2.urlopen(request)
- text = response.read()
- print text