国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python requests模塊session代碼實例

瀏覽:52日期:2022-07-30 09:57:29

http協(xié)議本身是無狀態(tài)的,為了讓請求之間保持狀態(tài),有了session和cookie機制。requests也提供了相應(yīng)的方法去操縱它們。

requests中的session對象能夠讓我們跨http請求保持某些參數(shù),即讓同一個session對象發(fā)送的請求頭攜帶某個指定的參數(shù)。當(dāng)然,最常見的應(yīng)用是它可以讓cookie保持在后續(xù)的一串請求中。

下面,通過官方文檔中的示例來了解如何使用它。

import requestss = requests.Session()# 第一步:發(fā)送一個請求,用于設(shè)置請求中的cookies# tips: http://httpbin.org能夠用于測試http請求和響應(yīng)s.get(’http://httpbin.org/cookies/set/sessioncookie/123456789’)# 第二步:再發(fā)送一個請求,用于查看當(dāng)前請求中的cookiesr = s.get('http://httpbin.org/cookies')print(r.text)

運行結(jié)果

{ 'cookies': { 'sessioncookie': '123456789' }}

從結(jié)果中我們可以看出,第二次請求已經(jīng)攜帶上了第一次請求所設(shè)置的cookie,即通過session達(dá)到了保持cookie的目的。示例中創(chuàng)建了一個requests.Session()對象,通過該對象來進行http請求操作,該操作基本類似于requests.request()

由于session讓請求之間具有了連貫性,那么,就有了跨請求參數(shù)和非跨請求參數(shù)的區(qū)別。即有時我想讓所有請求均帶有某個參數(shù),而有時我只是想讓單獨的一條請求帶上臨時的參數(shù)。通過下面的例子來了解如何使用。

import requestss = requests.Session()s.headers.update({’x-test’: ’true’})# both ’x-test’ and ’x-test2’ are sentr1 = s.get(’http://httpbin.org/headers’, headers={’x-test2’: ’true’})print(r1.text)# ’x-test’ is sentr2 = s.get(’http://httpbin.org/headers’)print(r2.text)

運行結(jié)果

# r1.text{ 'headers': { 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.22.0', 'X-Amzn-Trace-Id': 'Root=1-5e91656f-b99f14a4d6f47f9e55a90bb4', 'X-Test': 'true', 'X-Test2': 'true' }}# r2.text{ 'headers': { 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.22.0', 'X-Amzn-Trace-Id': 'Root=1-5e91656f-e9741db4c2ca2fd6e0628396', 'X-Test': 'true' }}

從結(jié)果中我們可以得出兩條結(jié)論:

session可以為請求方法提供缺省數(shù)據(jù),比如第一次請求中的{’x-test’: ’true’}就是缺省數(shù)據(jù),此時的缺省數(shù)據(jù)就是跨請求參數(shù)。方法級別的參數(shù)不會被跨請求保持,比如第二次請求時,沒有攜帶headers={’x-test2’: ’true’},返回的結(jié)果中也沒有{’x-test2’: ’true’},說明該參數(shù)沒有在第一次請求后被保持住。

參考資料

https://github.com/psf/requests/blob/master/requests/sessions.py

https://requests.readthedocs.io/en/master/user/advanced/#session-objects

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 英山县| 吉林市| 莫力| 河津市| 安平县| 裕民县| 彭水| 永德县| 永胜县| 永川市| 东丽区| 城口县| 南京市| 林芝县| 潞城市| 徐汇区| 景东| 南宁市| 荣成市| 大宁县| 鹤壁市| 太仆寺旗| 扎赉特旗| 仙游县| 鹿邑县| 江华| 平昌县| 丁青县| 恩平市| 丰县| 祁门县| 株洲县| 绿春县| 福安市| 阳山县| 绥棱县| 连南| 西城区| 资源县| 得荣县| 柏乡县|