解讀requests.session()獲取Cookies全過程
通過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
查看源碼。
得到如圖:
使用的是default_headers()
(默認(rèn)請(qǐng)求頭),這里我們依然看不到print
打印在終端的內(nèi)容,所以繼續(xù)ctrl+右擊
點(diǎn)擊default_headers()
。
得到如圖:
OK! But it’s not over,這里我們還有User-Agent
的value
沒有看到,但是經(jīng)過猜測(cè)我們不難得到default_user_agent()
的內(nèi)容就是python-requests/2.21.0
。
包裝請(qǐng)求頭,讓他看起來更帥氣
首先,了解對(duì)headers
進(jìn)行一個(gè)簡(jiǎn)單的增刪改查操作
包裝
包裝我們的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)證兩種方式是否得到的效果一樣
- 第一種方式
- 第二種方式
結(jié)論:兩種方式在response
端看到的效果等同,區(qū)別在于第一種方式session是永久的,而第二種常用的方式只是在請(qǐng)求的時(shí)候攜帶過去的,所以當(dāng)我們查看session的時(shí)候?yàn)榭?,那么這就有一個(gè)問題,我們?cè)诤罄m(xù)的請(qǐng)求中任然需要帶上headers=
這個(gè)參數(shù),似乎它并沒有那么好?
這是在github
上copy 的部分爬蟲代碼如下:
連續(xù)帶了兩次Headers
,這樣沒有什么不好,你開心就好~~~。
cookies獲取過程
- 請(qǐng)求之前我們先清空
Headers
,Cookies
內(nèi)的信息 headers
中僅寫入user-agent
,Cookies
為空- 請(qǐng)求之后查看
session
中Cookies
,得到響應(yīng)端返回的cookies
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)telnet服務(wù)器的方法
這篇文章主要介紹了Python實(shí)現(xiàn)telnet服務(wù)器的方法,涉及Python通過Telnet連接服務(wù)器的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Python實(shí)現(xiàn)繪制Matlab格式的地圖邊框的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)繪制Matlab格式的地圖邊框,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下2022-09-09python實(shí)現(xiàn)高精度求自然常數(shù)e過程詳解
這篇文章主要為大家介紹了python實(shí)現(xiàn)高精度求自然常數(shù)e過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python 窗體(tkinter)下拉列表框(Combobox)實(shí)例
這篇文章主要介紹了Python 窗體(tkinter)下拉列表框(Combobox)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python高級(jí)編程之消息隊(duì)列(Queue)與進(jìn)程池(Pool)實(shí)例詳解
這篇文章主要介紹了Python高級(jí)編程之消息隊(duì)列(Queue)與進(jìn)程池(Pool),結(jié)合實(shí)例形式詳細(xì)分析了Python消息隊(duì)列與進(jìn)程池的相關(guān)原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-11-11python 簡(jiǎn)單的多線程鏈接實(shí)現(xiàn)代碼
這篇文章主要介紹了python 簡(jiǎn)單的多線程鏈接實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-08-08python 圖像插值 最近鄰、雙線性、雙三次實(shí)例
這篇文章主要介紹了python 圖像插值 最近鄰、雙線性、雙三次實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07