python中requests模擬登錄的三種方式(攜帶cookie/session進(jìn)行請求網(wǎng)站)
一,cookie和session的區(qū)別
cookie在客戶的瀏覽器上,session存在服務(wù)器上
cookie是不安全的,且有失效時(shí)間
session是在cookie的基礎(chǔ)上,服務(wù)端設(shè)置session時(shí)會向?yàn)g覽器發(fā)送設(shè)置一個(gè)設(shè)置cookie的請求,這個(gè)cookie包括session的id當(dāng)訪問服務(wù)端時(shí)帶上這個(gè)session_id就可以獲取到用戶保存在服務(wù)端對應(yīng)的session
二,爬蟲處理cookie和session
帶上cookie和session的好處:
能夠請求到登錄后的界面
帶上cookie和session的弊端:
一個(gè)cookie和session往往和一個(gè)用戶對應(yīng),訪問太快容易被服務(wù)器檢測出來爬蟲
不需要cookie的時(shí)候盡量不要用
三,處理session,cookie請求
1,cookie請求方式
1.1 直接使用瀏覽器抓包到的現(xiàn)有的cookie進(jìn)行訪問網(wǎng)站:
放在header字典里面
header={ "User-Agent":"Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/64.0", "Cookie":"csrftoken=JfnuMOvgMGZTxtCjvgfZ…6246vb2; username=chengyangkj", } r=request.get(url,headers=header)
當(dāng)然也可以在發(fā)送get請求時(shí)加上cookies的字典參數(shù):
Cookie="csrftoken=JfnuMOvgMGZTxtCjvgfZ…6246vb2; username=chengyangkj"
但是接受的參數(shù)是字典類型的,這就需要我們適用字符串分割方法把cookie字符串轉(zhuǎn)為字典形式:
Cookie="csrftoken=JfnuMOvgMGZTxtCjvgfZ…6246vb2; username=chengyangkj" cookies={i.split("=")[1]:i.split("=")[1] for i in Cookie.split("; ")} #先使用for循環(huán)遍歷Cookie以”; “(分號和空格)分開的列表 再分別獲取i以等號分割的列表的[0] [1] 位置填入 字典鍵 和值的位置 r=request.get(url,headers=header,cookies=cookies)
適用于cookie過期時(shí)間比較長的網(wǎng)站
2.session請求方式
request提供了一個(gè)一個(gè)叫做session的類,來實(shí)現(xiàn)客戶端和服務(wù)端的會話保持
使用方法:
1.實(shí)例化一個(gè)session對象
2.讓session發(fā)送get或post請求
3.再使用session訪問只有登錄之后才能訪問的網(wǎng)站,這時(shí)候session會自動帶上服務(wù)器保存在其中的信息進(jìn)行訪問
session=request.session() #實(shí)例化session對象 response=session.get(url,header) #使用session對象發(fā)送get請求 就能獲取服務(wù)端設(shè)置的session對象
到此這篇關(guān)于python中requests模擬登錄的三種方式(攜帶cookie/session進(jìn)行請求網(wǎng)站)的文章就介紹到這了,更多相關(guān)python requests模擬登錄 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中import的用法陷阱解決盤點(diǎn)小結(jié)
這篇文章主要為大家介紹了Python中import的用法陷阱解決盤點(diǎn)小結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10pytest生成Allure報(bào)告以及查看報(bào)告的實(shí)現(xiàn)
本文主要介紹了pytest生成Allure報(bào)告以及查看報(bào)告的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Python數(shù)據(jù)處理Filter函數(shù)高級用法示例
本文將詳細(xì)介紹filter函數(shù)的使用方法,并提供豐富的示例代碼,幫助你深入理解如何利用它來處理數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Python通過WHL文件實(shí)現(xiàn)離線安裝的操作詳解
在Python開發(fā)中,我們經(jīng)常需要安裝第三方庫來擴(kuò)展Python的功能,通常情況下,我們可以通過pip命令在線安裝這些庫,此時(shí),WHL(Wheel)文件成為了非常實(shí)用的解決方案,本教程將結(jié)合實(shí)際案例,詳細(xì)介紹如何通過WHL文件在Python中進(jìn)行離線安裝,需要的朋友可以參考下2024-08-08pytorch 改變tensor尺寸的實(shí)現(xiàn)
今天小編就為大家分享一篇pytorch 改變tensor尺寸的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python pygame 動畫游戲循環(huán)游戲時(shí)鐘實(shí)現(xiàn)原理
這篇文章主要為大家介紹了Python pygame 動畫游戲循環(huán)游戲時(shí)鐘實(shí)現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Python異步發(fā)送日志到遠(yuǎn)程服務(wù)器詳情
這篇文章主要介紹了Python異步發(fā)送日志到遠(yuǎn)程服務(wù)器詳情,文章通過簡單輸出到cmd和文件中的代碼展開詳情,需要的朋友可以參考一下2022-07-07