По умолчанию ли файл requests
пакета Python кэширует данные?
Например,
import requests
resp = requests.get('https://some website')
Будет ли кэшироваться ответ? Если да, как его очистить?
По умолчанию ли файл requests
пакета Python кэширует данные?
Например,
import requests
resp = requests.get('https://some website')
Будет ли кэшироваться ответ? Если да, как его очистить?
Python-запросы не имеют никаких функций кэширования.
Однако, если они вам нужны, вы можете посмотреть на кеш запросов, хотя я им никогда не пользовался.
Однако по состоянию на 2018 год его последний выпуск был в 2016 году, поэтому он не поддерживается.
Добавьте заголовок 'Cache-Control: no-cache'
:
self.request = requests.get('http://google.com',
headers={'Cache-Control': 'no-cache'})
Запросы не делают кеширование по умолчанию. Вы можете легко подключить его, используя что-то вроде CacheControl.
Поздний ответ, но запросы Python не кэшируют запросы, вместо этого вы должны использовать заголовки Cache-Control
и Pragma
а именно:
import requests
headers = {
...
"Cache-Control": "no-cache",
"Pragma": "no-cache"
}
x = requests.get("site.tld", headers=headers)
...
Cache-Control
Поле общего заголовка Cache-Control используется для указания директив для механизмов кэширования как в запросах, так и в ответах. Директивы кэширования являются однонаправленными, это означает, что данная директива в запросе не означает, что в ответе должна быть указана та же директива.
Pragma
Специфичный для реализации заголовок, который может иметь различные эффекты в любом месте цепочки запрос-ответ. Используется для обратной совместимости с кешами HTTP/1.0, где заголовок Cache-Control еще не присутствует.
директива
no-cache
Вынуждает кэши отправлять запрос на исходный сервер для проверки перед выпуском кэшированной копии.
Примечание по Pragma
:
Прагма не указана для ответов HTTP и, следовательно, не является надежной заменой общему заголовку HTTP/1.1 Cache-Control, хотя она ведет себя так же, как Cache-Control: no-cache, если поле заголовка Cache-Control отсутствует в запрос. Используйте Pragma только для обратной совместимости с клиентами HTTP/1.0.