python模擬登陸,用session維持回話的實(shí)例
python模擬登陸的幾種方法
客戶端向服務(wù)器發(fā)送請(qǐng)求,cookie則是表明我們身份的標(biāo)志。而“訪問登錄后才能看到的頁面”這一行為,恰恰需要客戶端向服務(wù)器證明:“我是剛才登錄過的那個(gè)客戶端”。于是就需要cookie來標(biāo)識(shí)客戶端的身份,以存儲(chǔ)它的信息(如登錄狀態(tài))
1、先在瀏覽器中登錄,然后打開開發(fā)者選項(xiàng),找到一個(gè)請(qǐng)求方法為POST的請(qǐng)求,復(fù)制Requests Headers中的cookie在爬取需要登錄的頁面時(shí)加上此cookies即可
import requests url = '......' headers = {'cookies':'......'} response = requests.get(url=url, headers=headers)
2、 模擬登錄,并用session維持會(huì)話,用requests的session模擬登錄后session會(huì)記錄cookies,接下來的請(qǐng)求會(huì)被放在同一個(gè)會(huì)話中。舉個(gè)簡(jiǎn)單例子,在 requests 中,如果直接利用 get()或 post()等方法的確可以做到模擬網(wǎng)頁的請(qǐng)求,但是這實(shí)際 上是相當(dāng)于不同的會(huì)話,也就是說相當(dāng)于你用了兩個(gè)瀏覽器打開了不同的頁面。設(shè)想這樣一個(gè)場(chǎng)景,第一個(gè)請(qǐng)求利用 post()方法登錄了某個(gè)網(wǎng)站,第二次想獲取成功登錄后的自 己的個(gè)人信息,你又用了一次 get()方法去請(qǐng)求個(gè)人信息頁面。 實(shí)際上,這相當(dāng)于打開了兩個(gè)瀏覽器, 這是兩個(gè)完全不相關(guān)的會(huì)話,能成功獲取個(gè)人信息嗎?那當(dāng)然不能
import requests ''' 下面的data是先在瀏覽器中登錄,然后打開開發(fā)者選項(xiàng),找到一個(gè)請(qǐng)求方法為POST的請(qǐng)求,復(fù)制里面的Form Data ''' url = '......' data = { username:'......', password:flz_sanqianchi, rememberMe:true, lt:LT-82465-9HtQnC7ZASZHohtnQlrqMvXo7cI2B7, execution:e1s1, } headers = {'user-agent':'Mozolla/5.0'} ''' 這里用requests的session來請(qǐng)求網(wǎng)頁,做到維持同一會(huì)話的目的 ''' session = requests.Session() reqsonse = session.post(url=url, headers=headers, data=data) ''' 接下來就可以請(qǐng)求別的登陸后的頁面,而不需要處理cookies ''' url2 = '這里是已經(jīng)登錄后的某一頁面' response = session.get(url=url2, headers=headers)
以上這篇python模擬登陸,用session維持回話的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python中sys.argv參數(shù)用法實(shí)例分析
這篇文章主要介紹了python中sys.argv參數(shù)用法,實(shí)例分析了python中sys.argv參數(shù)的功能、定義及使用技巧,需要的朋友可以參考下2015-05-05利用Python實(shí)現(xiàn)sqlite3增刪改查的封裝
在一些小的應(yīng)用中,難免會(huì)用到數(shù)據(jù)庫,Sqlite數(shù)據(jù)庫以其小巧輕便,無需安裝,移植性好著稱,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)sqlite3增刪改查的封裝,需要的朋友可以參考下2021-12-12Python通過正則表達(dá)式選取callback的方法
這篇文章主要介紹了Python通過正則表達(dá)式選取callback的方法,涉及Python正則表達(dá)式及回調(diào)函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07python 時(shí)間 T 去掉 帶上ms 毫秒 時(shí)間格式的操作
這篇文章主要介紹了python 時(shí)間 T 去掉 帶上ms 毫秒 時(shí)間格式的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04

Python2.x利用commands模塊執(zhí)行Linux shell命令

Python的Bottle框架中返回靜態(tài)文件和JSON對(duì)象的方法

python中的subprocess.Popen()使用詳解