python類比表單提交登入圖書館

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了python類比表單提交登入圖書館的實現方法,具有一定的參考價值,感興趣的小夥伴們可以參考一下

本文執行個體為大家分享了python類比登入圖書館的具體代碼,供大家參考,具體內容如下

類比表單提交的原理:

我們都知道Http是無狀態的,所以當我們提交的資料和瀏覽器中正常提交一樣,那麼伺服器就會返回和瀏覽器中一樣的響應。所以我們這裡來類比瀏覽器表單提交登入廣東工業大學的圖書館 http://222.200.122.171:7771/login.aspx,擷取cookie,我們接下來訪問圖書館網站裡的其他頁面時就帶上這個cookie,伺服器會認為我是已經登入的使用者,回正常返回資料給我。

首先我們先用瀏覽器查看頁面原始碼找到要提交的form表單:

接下來我們要擷取表單中的input 包括hidden,因為hidden也會跟著表單一起提交.找到帳號和密碼對應的name 到時候我們需要用自己的帳號填寫的.

擷取到所有的要提交的表單內容後,將帳號和密碼替換成自己的帳號和密碼,提交請求.擷取cookie並儲存在cookie中。

代碼如下(Python2.7版本 和Python3都其實都差不多):

# -*- coding:utf-8 -*- import urllib import urllib2 import cookielib import bs4  result = urllib2.urlopen("http://222.200.122.171:7771/login.aspx") soup = bs4.BeautifulSoup(result, "html.parser")  loginp = soup.find("form", attrs={"name": "aspnetForm"}) Allinput = loginp.findAll("input") inputData = {} for oneinput in Allinput:  if oneinput.has_attr('name'):   if oneinput.has_attr('value'):    inputData[oneinput['name']] = oneinput['value']   else:    inputData[oneinput['name']] = "" inputData['ctl00$ContentPlaceHolder1$txtPas_Lib'] = '*****' inputData['ctl00$ContentPlaceHolder1$txtUsername_Lib'] = '*******'  filename = 'cookie.txt' # 聲明一個MozillaCookieJar對象執行個體來儲存cookie,之後寫入檔案 cookie = cookielib.MozillaCookieJar(filename) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) postdata = urllib.urlencode(inputData) result2 = opener.open("http://222.200.122.171:7771/login.aspx", postdata) cookie.save(ignore_discard=True, ignore_expires=True) #登入後 要訪問的url bookUrl = "http://222.200.122.171:7771/user/userinfo.aspx" result=opener.open(bookUrl) print result.read()

相關文章

聯繫我們

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