Только начал изучать python, пишу небольшой скрипт для работы с твиттером с использованием прокси…
Не могу заставить модуль python requests работать через прокси по https.
С офсайта этого модуля:
If you need to use a proxy, you can configure individual requests with the proxies argument to any request method:import requests proxies = { "http": "http://10.10.1.10:3128", "https": "http://10.10.1.10:1080", } requests.get("http://example.org", proxies=proxies)
Но проблема в том, что это почему-то не работает именно для https-протокола.
Вот для наглядности скрипт на python с использованием requests с подключением через прокси, который получает страницы сервисов по получению IP по http и по https протоколам:
#!/usr/bin/env python #_*_ coding: utf-8 _*_ import requests proxy_line = 'http://193.106.31.10:8085' proxies = { "http": proxy_line, "https": proxy_line, } print ('proxy:', proxy_line) r2 = requests.get("http://ifconfig.me/ip", proxies=proxies) #сервис для получения IP по http-протоколу - это работает print ('page via http:', r2.text) r = requests.get("https://ipdb.at/", proxies=proxies) #сервис для получения IP по https-протоколу - это почему-то не работает! print ('page via https:', r.text)
И вот результат его выполнения:
./test_https.py ('proxy:', 'http://193.106.31.10:8085') ('page via http:', u'193.106.31.10\n') ('page via https:', u'<html><head><title>400 Bad Request</title></head>\r\n<body><h2>400 Bad Request</h2></body></html>\r\n')
То есть как видим, удается получить страницу по http и выдается ошибка при попытки получения страницы по https.
Используемый мною прокси 193.106.31.10:8085 (привязан к моему IP) точно умеет работать по https, так как аналогичный скрипт на php+curl у меня работает - то есть сервис https://ipdb.at/ успешно возвращает страницу на которой IP 193.106.31.10.
Большая просьба помочь разобраться как с помощью модуля requests работать именно по https-протоколу с использованием прокси, никакое гугление вот уже несколько суток ничего не дает, надежда только на форум.