2

Pythonシェルを使用する

>>> import requests
>>> cookies = {'sentcookie':'666'}
>>> res = requests.get('http://en.wikipedia.org/wiki/Main_Page', cookies=cookies)
>>> res   
<Response [200]>
>>> res.cookies
<<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, name='sentcookie', 
value='666', port=None, port_specified=False, domain='', domain_specified=False, 
domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None,  
discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)]>
>>>

サーバーから返されるCookieリストに「sentcookie」が含まれているのはなぜですか?通信を盗聴しましたが、サーバーからCookieが返されません。リクエストにリストに含まれるのはなぜですか?また、この動作を無効にするにはどうすればよいですか?

4

2 に答える 2

1

それは行動を無効にすることではありません、あなたはその行動をするように言っ requests ています。

これで:

cookies = {'sentcookie':'666'}
res = requests.get('http://en.wikipedia.org/wiki/Main_Page', cookies=cookies)

必要かどうかにかかわらず、そのCookieを利用できるようにすることを伝えています...

通常cookies=、ブラウザのキャッシュなどから取得した既存のCookieに使用し(何らかの理由で)、requests通常どおりサーバーからのCookieを処理するためにそのままにしておきます

于 2012-12-18T17:23:13.143 に答える
1

私はまったく同じ問題を抱えており、あなたの答えを完全には理解していないと思います。ドキュメントに従ってリクエストにCookieを追加したい場合、これは正しい方法です。

cookies = {'sentcookie':'666'}
response = requests.get('http://en.wikipedia.org/wiki/Main_Page', cookies=cookies)

これで、サーバーがCookieを返す場合、次の方法でCookieにアクセスできます。

response.cookies 

しかし、サーバーがCookieを返さなかったとしても、送信したCookieと同じCookieを取得することは期待していません。何らかの理由で、Cookieが発生しているためです。

この動作を防ぐにはどうすればよいですか?

于 2012-12-18T18:51:02.057 に答える