セッション()メソッド
Sessionオブジェクトを使用すると、特定のパラメータを維持するための要求を横断することができます。すべてのリクエストで同じあなたが同じホストに複数の要求を送信する場合、Sessionインスタンスクッキーを維持するために送信されます、TCP基になる接続は、大幅なパフォーマンス向上につながる、再利用されます
中)(セッションクッキーを追加
第クッキー辞書形式として渡すパラメータ、セッション・クッキー内の2つの場合がある)(追加、()メソッドは、パケット形式に変換した後、ジャーセッション(オブジェクト)を更新するように設定されているrequests.cookies.RequestsCookieJarによって必要とされます、 2番目のパラメータは直接クッキージャーパッケージ形式を渡します。このアップデートは、直接セッションクッキー()オブジェクトに更新されます
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中
セッションのインスタンスを保つために十字架の要求:
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": {}}
注:この方法のセッションレベルのパラメータを使用するだけで、以下の実施例およびクッキー要求ではなく、第二のように、要求間で維持されないであろう。
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'}}
セッションヘッダ情報を追加する()で
比較的多くのセッションに簡単に()のヘッダ情報を付加して、話します
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)