Pythonのrequests
パッケージはデフォルトでデータをキャッシュしますか?
例えば、
import requests
resp = requests.get('https://some website')
応答はキャッシュされますか?はいの場合、どうすればクリアできますか?
Pythonリクエストにはキャッシュ機能はありません。
ただし、それらが必要な場合は requests-cache を参照できますが、使用したことはありません。
2018年現在、最後のリリースは2016年でしたので、維持されていないようです。
'Cache-Control: no-cache'
ヘッダーを追加します。
self.request = requests.get('http://google.com',
headers={'Cache-Control': 'no-cache'})
デフォルトでは、リクエストはキャッシュを行いません。 CacheControl のようなものを使用して簡単にプラグインできます。
遅い回答ですが、 pythonリクエストリクエストをキャッシュしません headersCache-Control
およびPragma
代わりに、すなわち:
import requests
headers = {
...
"Cache-Control": "no-cache",
"Pragma": "no-cache"
}
x = requests.get("site.tld", headers=headers)
...
Cache-Control
Cache-Control general-headerフィールドは、要求と応答の両方でメカニズムをキャッシュするためのディレクティブを指定するために使用されます。キャッシングディレクティブは単方向です。つまり、要求内の特定のディレクティブは、同じディレクティブが応答で提供されることを意味していません。
Pragma
リクエスト固有のチェーンのどこにでもさまざまな影響を与える可能性のある実装固有のヘッダー。 Cache-Controlヘッダーがまだ存在しないHTTP/1.0キャッシュとの下位互換性のために使用されます。
ディレクティブ
no-cache
キャッシュされたコピーを解放する前に、キャッシュに強制的に検証のためにオリジンサーバーにリクエストを送信させます。
Pragma
に関する注意:
プラグマはHTTP応答に対して指定されていないため、一般的なHTTP/1.1のCache-Controlヘッダーの信頼できる代替にはなりませんが、Cache-Controlヘッダーフィールドが省略されている場合、Cache-Control:no-cacheと同じように動作します。リクエスト。 Pragmaは、HTTP/1.0クライアントとの下位互換性のためにのみ使用してください。