2016-12-04 2 views
0

私はセッションの実験をrequestsにしました。 1つのことは私を混乱させます。セッションを再利用すると、2回目のリクエストでCookieが空になります。はセッションを要求します:クッキーは本当に持続しますか?

この短い例では、この結果は私が試したすべてのホストと同じです。

import requests 
import time 

# ==== First Request ==== 
session = requests.Session() 
response = session.get(url="http://www.example.com") 
print(response.cookies) 
# <RequestsCookieJar[<Cookie UID=759854d4058cf52df60bbbe2a19d1402f5aee (...) 

time.sleep(2) 

# ==== Second Request ==== 
response = session.get(url="http://www.example.com") 
print(response.cookies) 
# <RequestsCookieJar[]> (EMPTY!) 

しかしdocumentationに従って:

Sessionオブジェクトを使用すると、 リクエスト間で特定のパラメータを保持することができます。 セッションインスタンス(...)から作成されたすべてのリクエストにCookieが保持されます。

何が欠けていますか?

編集:回答は私が間違っていたと説明しました。そしてdir(session)は私にクッキーが保存されたことを認識させましたsession.cookies

答えて

2

これは、リクエストの代わりにレスポンスのhttpヘッダーをチェックしたためです。

最初のリクエストで初めてサーバーにセッションが作成され、サーバーはリクエストにHTTPヘッダーSet-Cookieで応答します。これは、最初の応答のプリントアウトに表示されます。

2番目の要求では、セッションはすでに作成されているため、サーバーは応答にCookieを含める必要はありません。

レスポンスの代わりにリクエストを調べてみます。

+0

ありがとうございました。さて、私は、クッキーが 'session.cookies'で永続的であることを見ることができます。 –

関連する問題