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

您的位置:首頁技術文章
文章詳情頁

Python requests模塊cookie實例解析

瀏覽:4日期:2022-07-30 09:48:29

cookie并不陌生,與session一樣,能夠讓http請求前后保持狀態。與session不同之處,在于cookie數據僅保存于客戶端。requests也提供了相應到方法去處理cookie。

在python requests模塊-session中,我們知道了requests中的session對象能夠在請求之間保持cookie,它極大地方便了我們去使用cookie。當我們想設置方法級別中的請求時,可以如下面示例一樣操作。

import requestss = requests.session()# 第一步:發送一個請求,用于設置請求中的cookiescookies = dict(cookies_are=’cookie1’)# tips: http://httpbin.org能夠用于測試http請求和響應r1 = s.get(url=’http://httpbin.org/cookies’, cookies=cookies)print(r1.text)# 第二步:發送一個請求,用于再次設置請求中的cookiescookies = dict(cookies_are=’cookie2’)r2 = s.get(url=’http://httpbin.org/cookies’, cookies=cookies)print(r2.text)

運行結果

# r1.text{ 'cookies': { 'cookies_are': 'cookie1' }}# t2.text{ 'cookies': { 'cookies_are': 'cookie2' }}

從結果中可以看出,該方法讓cookie只作用了單個請求,因為方法級別的參數不會被跨請求保持,這是requests中session對象的機制,這里不再贅述。那么,如果我們想跨請求保持cookie呢?這里依舊可以應用session對象的跨請求機制,方法如下:

import requestss = requests.session()s.cookies.update({’cookies_are’: ’cookie’})r = s.get(url=’http://httpbin.org/cookies’)print(r.text)

值得一提的是,除了直接用字典去賦值cookie之外,requests還提供了RequestsCookieJar對象供我們使用,它的行為類似字典,但接口更為完整,適合跨域名跨路徑使用。來看一個官方文檔中的示例。

import requestsjar = requests.cookies.RequestsCookieJar()jar.set(’tasty_cookie’, ’yum’, domain=’httpbin.org’, path=’/cookies’)jar.set(’gross_cookie’, ’blech’, domain=’httpbin.org’, path=’/elsewhere’)url = ’http://httpbin.org/cookies’r = requests.get(url, cookies=jar)print(r.text)

運行結果

{ 'cookies': { 'tasty_cookie': 'yum' }}

從結果中,可以看出我們利用RequestsCookieJar對象,達到了根據不同請求路徑,發送不同cookie的效果,進一步增加了操作cookie的靈活性。

參考文檔

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

https://requests.readthedocs.io/en/master/user/quickstart/#cookies

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 洪雅县| 蕲春县| 盐边县| 崇信县| 巴林左旗| 武胜县| 册亨县| 三亚市| 贵德县| 芒康县| 阳信县| 铅山县| 红河县| 铜鼓县| 西畴县| 临江市| 永兴县| 延边| 望奎县| 德保县| 黔西县| 万山特区| 开江县| 金沙县| 巴青县| 石台县| 柳河县| 吉木萨尔县| 曲沃县| 富宁县| 崇仁县| 钟山县| 凤城市| 成都市| 朝阳县| 涞源县| 郎溪县| 东乌珠穆沁旗| 乐东| 环江| 托克逊县|