Ваш файл прокси — это пул, а не таблица маршрутизации Requests
Превратите строку аутентифицированного списка прокси в выбранную конечную точку, не используя адреса прокси как ключи маршрутизации назначения.
Выберите один прокси из файла, затем постройте карту маршрутов для запроса к сайту. Пул кандидатов в конечные точки сам по себе не является словарём маршрутизации Requests.
- Разберите строку по заданному формату. Неформальная строка
IP:port:user:passwordнеоднозначна, когда адреса IPv6 или учётные данные содержат двоеточия. Для хоста IPv4, числового порта и имени пользователя без двоеточий ограниченное разделение может оставить остаток текста в качестве пароля. Используйте отдельные структурированные поля, когда эти ограничения не подходят. - Выберите конечную точку для этой операции. Сохраните её фактический протокол и закодируйте компоненты учётных данных при построении её URL. Держите это значение, несущее секрет, вне обычных журналов.
- Сопоставьте схемы назначения с этим выбранным URL. Для одного выбранного HTTP-прокси карта может выглядеть так:
routes = {
'http': selected_proxy_url,
'https': selected_proxy_url,
}Ключи http и https выбирают схемы назначения. Ключ вроде http://203.0.113.10 вместо этого выбирает запросы именно к этому хосту назначения; он не помечает прокси по этому адресу. Использование каждого IP прокси в качестве ключа может оставить несвязанный сайт без нужного маршрута.
Разберите пул один раз, выберите конечную точку и создайте сопоставление для вызова клиента. Раздельное хранение этих шагов позволяет менять политику выбора, не меняя смысл ключей маршрутизации Requests.