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