国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Python模擬登錄requests.Session應用詳解

瀏覽:2日期:2022-07-05 10:10:26

最近由于某些原因,需要用到Python模擬登錄網站,但是以前對這塊并不了解,而且目標網站的登錄方法較為復雜, 所以一下卡在這里了,于是我決定從簡單的模擬開始,逐漸深入地研究下這塊。

注:本文僅為交流學習所用。

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

會話對象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 requestsfrom 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應用詳解

至此,登錄成功。

到此這篇關于Python模擬登錄requests.Session應用詳解的文章就介紹到這了,更多相關Python模擬登錄requests.Session內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 宜丰县| 金沙县| 施甸县| 正安县| 墨竹工卡县| 肥西县| 晋宁县| 藁城市| 汾阳市| 和政县| 临邑县| 洪泽县| 定襄县| 睢宁县| 布尔津县| 麻江县| 延川县| 昌江| 宁晋县| 富阳市| 涟源市| 长寿区| 平果县| 密山市| 吉安县| 关岭| 渭源县| 中山市| 梁河县| 监利县| 三河市| 武宣县| 古交市| 颍上县| 宜宾县| 刚察县| 吉木萨尔县| 霍邱县| 金门县| 闵行区| 福鼎市|