Python類比登陸執行個體詳解

來源:互聯網
上載者:User
本篇文章主要介紹了Python類比登陸實現代碼,這裡整理了詳細的代碼,具有一定的參考價值,感興趣的小夥伴們可以參考一下

下面分享一個使用Python進行網站類比登陸的小例子。

原理

使用Cookie技術,繞開網站登入驗證。要使用到cookielib庫。流程:

  1. 建立一個儲存Cookie的容器,可選的有CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar.其相互之間的關係是CookieJar —-派生—->FileCookieJar —-派生—–>MozillaCookieJar和LWPCookieJar.

  2. 然後建立一個處理Cookie的處理器handler.通過urllib2.HTTPCookieProcessor(cookie)即可

  3. 建立一個用於開啟網站的opener。即可。這個opener相比於urllib2.urlopen方法更為普通一點而已。opener = urllib2.build_opener(handler)。

  4. 然後我們就可以正常的使用opener來訪問網路了。

小案例

實現的功能是類比登入到大連理工大學的教務網站。代碼如下:

# coding:UTF-8import urllib,urllib2,cookielibfilename = r'F:\pachong\gaoqing\dlutcookie.txt'# show cookie and save to localcookie = cookielib.MozillaCookieJar()handler = urllib2.HTTPCookieProcessor(cookie)opener = urllib2.build_opener(handler)# 記得使用urllib模組進行參數的encodepostdata = urllib.urlencode({  # 哈哈,本宮不給你們我的帳號╭(╯^╰)╮  'zjh':'xxxxxxxxx',  'mm':'XXXXXX'})# 登陸到教務系統的urlurl = 'http://zhjw.dlut.edu.cn/loginAction.do'# 開始進行類比登陸,並把cookie儲存到變數response = opener.open(url,postdata)cookie.save(filename,ignore_discard=True,ignore_expires=True)# 列印一下獲得的cookie資訊吧for item in cookie:  item.name + ' = ' + item.value# 利用cookie訪問另一個網址  登陸到個人成績的URLcourse_url='zhjw.dlut.edu.cn/xkAction.do?actionType=6'course_header={  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586',  'referer':'zhjw.dlut.edu.cn/menu/s_main.jsp'}result = opener.open(course_url)print result.read()

運行結果

總結

其實對於類比登陸而言,第一次的登陸就是為了擷取那個cookie資料。然後通過我們建立的opener來完成接下來我們要進行的關鍵的進一步的操作。我們需要理解的就只是那個cookie的使用的流程就行了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.