Подтвердить что ты не робот

Как очистить кеш с помощью запросов Python?

По умолчанию ли файл requests пакета Python кэширует данные?

Например,

import requests
resp = requests.get('https://some website')

Будет ли кэшироваться ответ? Если да, как его очистить?

4b9b3361

Ответ 1

Python-запросы не имеют никаких функций кэширования.

Однако, если они вам нужны, вы можете посмотреть на кеш запросов, хотя я им никогда не пользовался.

Однако по состоянию на 2018 год его последний выпуск был в 2016 году, поэтому он не поддерживается.

Ответ 2

Добавьте заголовок 'Cache-Control: no-cache':

self.request = requests.get('http://google.com',
                            headers={'Cache-Control': 'no-cache'})

Ответ 3

Запросы не делают кеширование по умолчанию. Вы можете легко подключить его, используя что-то вроде CacheControl.

Ответ 4

Поздний ответ, но запросы Python не кэшируют запросы, вместо этого вы должны использовать заголовки Cache-Control и Pragma а именно:

import requests
headers = {
    ...
    "Cache-Control": "no-cache",
    "Pragma": "no-cache"
}
x = requests.get("site.tld", headers=headers)
...

HTTP/Заголовки

  • 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.