91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python利用requests.Session如何實現一個模擬登錄功能

發布時間:2020-11-18 14:56:44 來源:億速云 閱讀:1239 作者:Leah 欄目:開發技術

Python利用requests.Session如何實現一個模擬登錄功能?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

登錄特點:明文傳輸,有特殊標志數據

會話對象requests.Session能夠跨請求地保持某些參數,比如cookies,即在同一個Session實例發出的所有請求都保持同一個cookies,而requests模塊每次會自動處理cookies,這樣就很方便地處理登錄時的cookies問題。在cookies的處理上會話對象一句話可以頂過好幾句urllib模塊下的操作。即相當于urllib中的:

cj = http.cookiejar.CookieJar()
pro = urllib.request.HTTPCookieProcessor(cj)
opener = urllib.request.build_opener(pro)
urllib.request.install_opener(opener)

模擬登錄V站

本篇文章的任務是利用request.Session模擬登錄V2EX(http://www.v2ex.com/)這個網站,即V站。

工具: Python 3.5,BeautifulSoup模塊,requests模塊,Chrome

這個網站登錄的時候抓到的數據如下:

Python利用requests.Session如何實現一個模擬登錄功能

其中用戶名(u)、密碼(p)都是明文傳輸的,很方便。once的話從分析登錄URL:http://www.v2ex.com/signin 的源文件(下圖)可以看出,應該是每次登錄的特有數據,我們需要提前把它抓出來再放到Form Data里面POST給網站。

Python利用requests.Session如何實現一個模擬登錄功能

抓出來還是老方法,用BeautifulSoup神器即可。這里又學到一種抓標簽里面元素的方法,比如抓上面的"value",用soup.find('input',{'name':'once'})['value']即可

即抓取含有 name="once"的input標簽中的value對應的值。

于是構建postData,然后POST。

怎么顯示登錄成功呢?這里通過訪問http://www.v2ex.com/settings 即可,因為這個網址沒有登錄是看不了的:

Python利用requests.Session如何實現一個模擬登錄功能

經過上面的分析,寫出源代碼(參考了alexkh的代碼):

import requests
from bs4 import BeautifulSoup
 
url = "http://www.v2ex.com/signin"
UA = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.13 Safari/537.36"
 
header = { "User-Agent" : UA,
      "Referer": "http://www.v2ex.com/signin"
      }
 
v2ex_session = requests.Session()
f = v2ex_session.get(url,headers=header)
 
soup = BeautifulSoup(f.content,"html.parser")
once = soup.find('input',{'name':'once'})['value']
print(once)
 
postData = { 'u': 'whatbeg',
       'p': '*****',
       'once': once,
       'next': '/'
       }
 
v2ex_session.post(url,
         data = postData,
         headers = header)
 
f = v2ex_session.get('http://www.v2ex.com/settings',headers=header)
print(f.content.decode())

然后運行發現成功登錄:

Python利用requests.Session如何實現一個模擬登錄功能

上面趴下來的網頁源代碼即為http://www.v2ex.com/settings的代碼。這里once為91279.

Python利用requests.Session如何實現一個模擬登錄功能

至此,登錄成功。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达州市| 犍为县| 象州县| 高淳县| 日喀则市| 特克斯县| 温宿县| 保德县| 东宁县| 兴业县| 佛山市| 贵港市| 商都县| 陇南市| 灵璧县| 那曲县| 泰来县| 翁源县| 阜康市| 侯马市| 安吉县| 石城县| 深水埗区| 怀柔区| 罗城| 特克斯县| 泊头市| 砀山县| 德惠市| 富阳市| 定远县| 大港区| 广南县| 陇川县| 明溪县| 桐乡市| 游戏| 焦作市| 寿光市| 托里县| 梁山县|