python實現模擬登陸

本文主要用python實現了對網站的模擬登陸。經過本身構造post數據來用Python實現登陸過程。
 
當你要模擬登陸一個網站時,首先要搞清楚網站的登陸處理細節(發了什麼樣的數據,給誰發等...)。我是經過HTTPfox來抓取http數據包來分析該網站的登陸流程。同時,咱們還要分析抓到的post包的數據結構和header,要根據提交的數據結構和heander來構造本身的post數據和header。
 
分析結束後,咱們要構造本身的HTTP數據包,併發送給指定url。咱們經過urllib2等幾個模塊提供的API來實現request請求的發送和相應的接收。
大部分網站登陸時須要攜帶cookie,因此咱們還必須設置cookie處理器來保證cookie。
 
 
具體代碼和講解以下

  1. #!/usr/bin/python  
  2.   
  3. import HTMLParser  
  4. import urlparse  
  5. import urllib  
  6. import urllib2  
  7. import cookielib  
  8. import string  
  9. import re  
  10.   
  11. #登陸的主頁面  
  12. hosturl = '******' //本身填寫  
  13. #post數據接收和處理的頁面(咱們要向這個頁面發送咱們構造的Post數據)  
  14. posturl = '******' //從數據包中分析出,處理post請求的url  
  15.   
  16. #設置一個cookie處理器,它負責從服務器下載cookie到本地,而且在發送請求時帶上本地的cookie  
  17. cj = cookielib.LWPCookieJar()  
  18. cookie_support = urllib2.HTTPCookieProcessor(cj)  
  19. opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)  
  20. urllib2.install_opener(opener)  
  21.   
  22. #打開登陸主頁面(他的目的是從頁面下載cookie,這樣咱們在再送post數據時就有cookie了,不然發送不成功)  
  23. h = urllib2.urlopen(hosturl)  
  24.   
  25. #構造header,通常header至少要包含一下兩項。這兩項是從抓到的包裏分析得出的。  
  26. headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',  
  27.            'Referer' : '******'}  
  28. #構造Post數據,他也是從抓大的包裏分析得出的。  
  29. postData = {'op' : 'dmlogin',  
  30.             'f' : 'st',  
  31.             'user' : '******', //你的用戶名  
  32.             'pass' : '******', //你的密碼,密碼多是明文傳輸也多是密文,若是是密文須要調用相應的加密算法加密  
  33.             'rmbr' : 'true',   //特有數據,不一樣網站可能不一樣  
  34.             'tmp' : '0.7306424454308195'  //特有數據,不一樣網站可能不一樣  
  35.   
  36.             }  
  37.   
  38. #須要給Post數據編碼  
  39. postData = urllib.urlencode(postData)  
  40.   
  41. #經過urllib2提供的request方法來向指定Url發送咱們構造的數據,並完成登陸過程  
  42. request = urllib2.Request(posturl, postData, headers)  
  43. print request  
  44. response = urllib2.urlopen(request)  
  45. text = response.read()  
  46. print text  
相關文章
相關標籤/搜索