Настройка max_retries для Requests.request в Python: практическое руководство

Да, вы можете установить параметр max_retriesдля метода requests.requestв Python с помощью модуля requests.adapters. Этот параметр позволяет указать максимальное количество повторов запроса в случае ошибок соединения или ошибок HTTP.

Вот пример фрагмента кода, демонстрирующий, как установить max_retriesдля requests.request:

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
# Create a session
session = requests.Session()
# Set the maximum number of retries
retries = Retry(total=5, backoff_factor=0.1, status_forcelist=[500, 502, 503, 504])
adapter = HTTPAdapter(max_retries=retries)
session.mount('http://', adapter)
session.mount('https://', adapter)
# Make a request
response = session.request('GET', 'https://example.com')
# Print the response
print(response.status_code)

В приведенном выше примере мы создаем объект Sessionиз модуля requests. Затем мы создаем объект Retry, в котором для totalустановлено значение 5, для backoff_factorустановлено значение 0,1 (чтобы ввести небольшую задержку между повторными попытками) и status_forcelistзадан список кодов состояния HTTP, которые должны инициировать повторную попытку. Затем мы создаем объект HTTPAdapterс параметром max_retries, для которого установлено значение нашего объекта Retry. Наконец, мы подключаем адаптер к URL-адресам http://и https://в сеансе.

Эта конфигурация позволяет повторить запрос до 5 раз, если обнаружен любой из указанных кодов состояния HTTP (500, 502, 503, 504).