Коротко и просто об отличном модуле запросов для Python.
Кажется, я не могу найти в документации, что должна содержать переменная 'proxies'. Когда я отправляю ему dict со стандартным значением "IP: PORT", он отклоняет его, запрашивая 2 значения. Итак, я предполагаю (поскольку это, похоже, не описано в документах), что первое значение - это ip, а второе - порт?
В документах упоминается только это:
прокси–серверы - (необязательно) Протокол сопоставления словаря с URL прокси-сервера.
Итак, я попробовал это... что я должен делать?
proxy = { ip: port}
и должен ли я преобразовать их в какой-либо тип, прежде чем помещать их в dict?
r = requests.get(url,headers=headers,proxies=proxy)
Переведено автоматически
Ответ 1
Синтаксис proxies' dict является {"protocol": "scheme://ip:port", ...}. С его помощью вы можете указать разные (или одинаковые) прокси для запросов, использующих протоколы http, https и ftp:
Я обнаружил, что в urllib есть действительно хороший код для настройки системных настроек прокси, и они находятся в правильной форме для прямого использования. Вы можете использовать это как:
import urllib
... r = requests.get('http://example.org', proxies=urllib.request.getproxies())
Он работает действительно хорошо, и urllib также знает о получении настроек Mac OS X и Windows.
Ответ 4
Принятый ответ был хорошим началом для меня, но я продолжал получать следующую ошибку:
AssertionError: Not supported proxy scheme None
Исправление заключалось в указании http:// в URL прокси таким образом: