python實現類比登入

來源:互聯網
上載者:User
python類比登入的實現
本文主要用python實現了對網站的類比登入。通過自己構造post資料來用Python實現登入過程。
當你要類比登入一個網站時,首先要搞清楚網站的登入處理細節(發了什麼樣的資料,給誰發等...)。我是通過HTTPfox來抓取http資料包來分析該網站的登入流程。同時,我們還要分析抓到的post包的資料結構和header,要根據提交的資料結構和heander來構造自己的post資料和header。
分析結束後,我們要構造自己的HTTP資料包,並發送給指定url。我們通過urllib2等幾個模組提供的API來實現request請求的發送和相應的接收。大部分網站登入時需要攜帶cookie,所以我們還必須設定cookie處理器來保證cookie。
具體代碼和講解如下
#!/usr/bin/pythonimport HTMLParserimport urlparseimport urllibimport urllib2import cookielibimport stringimport re#登入的首頁面hosturl = '******' //自己填寫#post資料接收和處理的頁面(我們要向這個頁面發送我們構造的Post資料)posturl = '******' //從資料包中分析出,處理post請求的url#設定一個cookie處理器,它負責從伺服器下載cookie到本地,並且在發送請求時帶上本地的cookiecj = 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 requestresponse = urllib2.urlopen(request)text = response.read()print text

以上是小弟自己的總結,如有不對請各位大俠指正,希望相互交流相互學習!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.