Python Requests: передавайте proxies в request(), а не в Request
Размещайте настройку прокси в API, который отправляет запрос, а не в конструкторе объекта Request, описывающего сообщение HTTP.
Requests предоставляет класс Request и функцию request, написанную строчными буквами. Изменение регистра может вызвать корректный API с неправильным списком аргументов вместо простой ошибки о неизвестной функции.
Объект Request описывает сообщение HTTP. Настройка прокси относится к API, который его отправляет. Для обычного вызова:
response = requests.request(
'GET', 'https://example.com/',
proxies=routes, timeout=15
)Здесь routes — это сопоставление прокси, выбранное для этой операции. Для разрешённых публичных запросов список бесплатных прокси предлагает кандидатов, которых можно отформатировать протоколом, поддерживаемым этой установкой Requests. Передача того же ключевого слова proxies в конструктор requests.Request не эквивалентна.
Если приложение намеренно использует подготовленные запросы, держите подготовку сообщения и настройку отправки раздельно. Потоку отправки сеанса также нужны предусмотренное объединение окружения, тайм-аут, проверка и настройки прокси.
Исправьте несоответствие API до замены конечных точек прокси. TypeError в конструкторе возникает раньше, чем этот объект выполнил предусмотренный сетевой запрос.