日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的requests.session()_Python+requests之session保持会话

發布時間:2024/4/19 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的requests.session()_Python+requests之session保持会话 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

session()方法

會話對象讓你能夠跨請求保持某些參數。它也會在同一個 Session 實例發出的所有請求之間保持 cookie,如果你向同一主機發送

多個求,底層的 TCP 連接將會被重用,從而帶來顯著的性能提升

session()中添加cookie

import requests

# 字典格式cookie添加方法

r = requests.session()

cookie = {"cookie1": "value_1", "cookie2": "value2"}

c = requests.cookies.RequestsCookieJar()

for key, value in cookie.items():

c.set(key, value) ? ? ? ? ? ? ? ? ? ? ? # 添加cookie到RequestsCookieJar中

r.cookies.update(c) ? ? ? ? ? ? ? ? ? ? ? ? # 將RequestsCookieJar中的cookie更新到session()中

print(r.cookies)

# jar包格式cookie添加方法

s = requests.session()

print(s.cookies) ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 打印session會話中cookies為空

s.cookies.update(r.cookies) ? ? ? ? ? ? ? ? # 將變量r中的jar包格式cookie直接更新到賦值session對象的變量s中

print(s.cookies) ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 打印發現變量r中的jar包格式cookie直接更新到會話對象s中

session()中添加cookie有兩種情況,第一種cookie傳參為字典格式,則需要通過requests.cookies.RequestsCookieJar()的set

方法將轉換成Jar包格式然后update到session()對象中,第二種cookie直接傳參Jar包格式。這種直接update將cookies更新到session()

對象中

跨請求保持會話實例:

import requests

s = requests.Session()

r1 = s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')

print(r1.text)

# '{"cookies": {"sessioncookie": "123456789"}}'

r2 = s.get("http://httpbin.org/cookies")

print(r2.text)

# '{"cookies": {"sessioncookie": "123456789"}}'

注:任何你傳遞給請求方法的字典都會與已設置會話層數據合并。方法層的參數覆蓋會話的參數。

import requests

s = requests.Session()

r = s.get('http://httpbin.org/cookies', cookies={'from-my': 'browser'})

print(r.text)

# '{"cookies": {"from-my": "browser"}}'

r = s.get('http://httpbin.org/cookies')

print(r.text)

# '{"cookies": {}}

注:使用了會話, 方法級別的參數也不會被跨請求保持,如下面的例子只會和第一個請求發送 cookie ,而非第二個。

import requests

s = requests.Session()

c = requests.cookies.RequestsCookieJar()

c.set('from-my', 'Chrome')

s.cookies.update(c)

# session()添加key為'from-my'的cookie

r1 = s.get('http://httpbin.org/cookies')

print(r1.text)

# '{"cookies": {'from-my': 'Chrome'}}

# 方法層次覆蓋添加key為'from-my'但value為 browser的cookies

r2 = s.get('http://httpbin.org/cookies', cookies={'from-my': 'browser'})

print(r2.text)

# '{"cookies": {"from-my": "browser"}}'

# 跨請求后覆蓋的cookie復原

r3 = s.get('http://httpbin.org/cookies')

print(r3.text)

# '{"cookies": {'from-my': 'Chrome'}}

session()中添加頭部信息

相對來說session()中添加頭部信息就簡單直白多

import requests

s = requests.Session()

s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent

r = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

print(r.text)

從會話字典參數中移除一個值

想省略字典參數中一些會話層的鍵。要做到這一點,你只需簡單地在方法層參數中將那個鍵的值設置為None,那個鍵就會被自動省略掉

import requests

s = requests.Session()

s.headers.update({'x-test': 'true'})

r = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

print(r.text)

s.headers.update({'x-test': None})

r = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

print(r.text)

總結

以上是生活随笔為你收集整理的python的requests.session()_Python+requests之session保持会话的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。