欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)網(wǎng)站的模擬登錄

 更新時(shí)間:2016年01月04日 09:17:01   作者:Franck_LeeMH  
這篇文章主要介紹了python實(shí)現(xiàn)網(wǎng)站的模擬登錄的相關(guān)資料,通過自己構(gòu)造post數(shù)據(jù)來用Python實(shí)現(xiàn)登錄過程,需要的朋友可以參考下

本文主要用python實(shí)現(xiàn)了對(duì)網(wǎng)站的模擬登錄。通過自己構(gòu)造post數(shù)據(jù)來用Python實(shí)現(xiàn)登錄過程。

當(dāng)你要模擬登錄一個(gè)網(wǎng)站時(shí),首先要搞清楚網(wǎng)站的登錄處理細(xì)節(jié)(發(fā)了什么樣的數(shù)據(jù),給誰(shuí)發(fā)等...)。我是通過HTTPfox來抓取http數(shù)據(jù)包來分析該網(wǎng)站的登錄流程。同時(shí),我們還要分析抓到的post包的數(shù)據(jù)結(jié)構(gòu)和header,要根據(jù)提交的數(shù)據(jù)結(jié)構(gòu)和heander來構(gòu)造自己的post數(shù)據(jù)和header。

分析結(jié)束后,我們要構(gòu)造自己的HTTP數(shù)據(jù)包,并發(fā)送給指定url。我們通過urllib2等幾個(gè)模塊提供的API來實(shí)現(xiàn)request請(qǐng)求的發(fā)送和相應(yīng)的接收。
大部分網(wǎng)站登錄時(shí)需要攜帶cookie,所以我們還必須設(shè)置cookie處理器來保證cookie。

具體代碼和講解如下

#!/usr/bin/python 
 
import HTMLParser 
import urlparse 
import urllib 
import urllib2 
import cookielib 
import string 
import re 
 
#登錄的主頁(yè)面 
hosturl = '******' //自己填寫 
#post數(shù)據(jù)接收和處理的頁(yè)面(我們要向這個(gè)頁(yè)面發(fā)送我們構(gòu)造的Post數(shù)據(jù)) 
posturl = '******' //從數(shù)據(jù)包中分析出,處理post請(qǐng)求的url 
 
#設(shè)置一個(gè)cookie處理器,它負(fù)責(zé)從服務(wù)器下載cookie到本地,并且在發(fā)送請(qǐng)求時(shí)帶上本地的cookie 
cj = cookielib.LWPCookieJar() 
cookie_support = urllib2.HTTPCookieProcessor(cj) 
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler) 
urllib2.install_opener(opener) 
 
#打開登錄主頁(yè)面(他的目的是從頁(yè)面下載cookie,這樣我們?cè)谠偎蚿ost數(shù)據(jù)時(shí)就有cookie了,否則發(fā)送不成功) 
h = urllib2.urlopen(hosturl) 
 
#構(gòu)造header,一般header至少要包含一下兩項(xiàng)。這兩項(xiàng)是從抓到的包里分析得出的。 
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1', 
  'Referer' : '******'} 
#構(gòu)造Post數(shù)據(jù),他也是從抓大的包里分析得出的。 
postData = {'op' : 'dmlogin', 
  'f' : 'st', 
  'user' : '******', //你的用戶名 
  'pass' : '******', //你的密碼,密碼可能是明文傳輸也可能是密文,如果是密文需要調(diào)用相應(yīng)的加密算法加密 
  'rmbr' : 'true', //特有數(shù)據(jù),不同網(wǎng)站可能不同 
  'tmp' : '0.7306424454308195' //特有數(shù)據(jù),不同網(wǎng)站可能不同 
 
  } 
 
#需要給Post數(shù)據(jù)編碼 
postData = urllib.urlencode(postData) 
 
#通過urllib2提供的request方法來向指定Url發(fā)送我們構(gòu)造的數(shù)據(jù),并完成登錄過程 
request = urllib2.Request(posturl, postData, headers) 
print request 
response = urllib2.urlopen(request) 
text = response.read() 
print text

領(lǐng)取干貨:零基礎(chǔ)入門學(xué)習(xí)python視頻教程

 以上就是本文的全部?jī)?nèi)容,希望大家相互交流相互學(xué)習(xí),共同進(jìn)步!

相關(guān)文章

最新評(píng)論