溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

requests.session()獲取Cookies的過程是什么

發(fā)布時(shí)間:2023-02-25 10:37:04 來源:億速云 閱讀:96 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下requests.session()獲取Cookies的過程是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

通過requests.session()查看默認(rèn)配置下請(qǐng)求頭

import requests

session = requests.session()

print("默認(rèn)配置下的請(qǐng)求頭:",session.headers.items())
# 默認(rèn)配置下的請(qǐng)求頭:
 ItemsView({'User-Agent': 'python-requests/2.21.0',
 'Accept-Encoding': 'gzip, deflate', 
 'Accept': '*/*',
 'Connection': 'keep-alive'})"

我們可以看到在默認(rèn)情況下,請(qǐng)求頭的內(nèi)容很機(jī)器,沒有靈性。

如果大家使用的IDE是Pycharm的話,ctrl+右鍵點(diǎn)擊session.headers的headers查看源碼。

得到如圖:

requests.session()獲取Cookies的過程是什么

使用的是default_headers()(默認(rèn)請(qǐng)求頭),這里我們依然看不到print打印在終端的內(nèi)容,所以繼續(xù)ctrl+右擊點(diǎn)擊default_headers()。

得到如圖:

requests.session()獲取Cookies的過程是什么

OK! But it’s not over,這里我們還有User-Agentvalue沒有看到,但是經(jīng)過猜測(cè)我們不難得到default_user_agent()的內(nèi)容就是python-requests/2.21.0

包裝請(qǐng)求頭,讓他看起來更帥氣

首先,了解對(duì)headers進(jìn)行一個(gè)簡單的增刪改查操作

requests.session()獲取Cookies的過程是什么

包裝

requests.session()獲取Cookies的過程是什么

包裝我們的Headers

  • 方式一

headers = {
            'Origin': 'https://***.com',
            'Host': '***.com',
            'Referer': 'https://**.com/,
            'User-Agent': 'Mozilla/5.0',
        }
session.headers.update(headers)#字典的更新方法
  • 方式二

換一種大家都在用的方式,在請(qǐng)求的時(shí)候添加headers參數(shù)即可:

response = session.get(url, headers=headers)

驗(yàn)證兩種方式是否得到的效果一樣

  • 第一種方式

requests.session()獲取Cookies的過程是什么

  • 第二種方式

requests.session()獲取Cookies的過程是什么

結(jié)論:兩種方式在response端看到的效果等同,區(qū)別在于第一種方式session是永久的,而第二種常用的方式只是在請(qǐng)求的時(shí)候攜帶過去的,所以當(dāng)我們查看session的時(shí)候?yàn)榭?,那么這就有一個(gè)問題,我們?cè)诤罄m(xù)的請(qǐng)求中任然需要帶上headers=這個(gè)參數(shù),似乎它并沒有那么好?

這是在github上copy 的部分爬蟲代碼如下:

requests.session()獲取Cookies的過程是什么

連續(xù)帶了兩次Headers,這樣沒有什么不好,你開心就好~~~。

cookies獲取過程

  • 請(qǐng)求之前我們先清空Headers,Cookies內(nèi)的信息

  • headers中僅寫入user-agentCookies為空

  • 請(qǐng)求之后查看sessionCookies,得到響應(yīng)端返回的cookies

requests.session()獲取Cookies的過程是什么

以上就是“requests.session()獲取Cookies的過程是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI