#python #proxy #python-requests #pycharm
#python #прокси #python-запросы #pycharm
Вопрос:
Я пытаюсь использовать функцию запросов из PyCharm.
import requests
url = 'https://www.google.com'
ProxyDict = {"http_proxy":"http://proxy-us.MyCompany.com:911","https_proxy":"http://proxy-us.MyCompany.com:912"}
o = requests.get(url,proxies = ProxyDict)
print(o.status_code)
Это дает мне
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000027CBF508B00>: Failed to establish a new connection: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond',))
Но когда я попытался запустить следующее из cmd, это сработало.
$set http_proxy=http://proxy-us.MyCompany.com:911
$set https_proxy=http://proxy-us.MyCompany.com:912
$ python ip_locator.py
200
Я попробовал следующее:
- настройка системных переменных env с именами HTTP_PROXY и HTTPS_PROXY
- в Pycharm Ctrl Alt S —> HTTP прокси -> Автоматическая настройка прокси URL: http:// proxy-us.MyCompany.com:911
Но ни один из моих методов не был успешным в настройке прокси в PyCharm. Есть предложения?
Ответ №1:
Кажется, я нашел решение.
Pycharm -> Выполнить -> Изменить конфигурацию -> Переменная среды
PYTHONUNBUFFERED=1;http_proxy=http://proxy-us.MyCompany.com:911;https_proxy=http://proxy-us.MyCompany.com:912
Ответ №2:
Вы передаете неправильные ключи словаря requests.get
.
Согласно документам, ключи должны быть названы http
и https
: https://requests.readthedocs.io/en/master/user/advanced/#proxies
Пример из документов:
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080',
}
requests.get('http://example.org', proxies=proxies)
Но поскольку прокси также могут быть настроены с помощью переменных среды, ваш второй подход работает: вы устанавливаете http_proxy
переменные и https_proxy
переменные среды. И requests
принять их в качестве конфигурации прокси.
Комментарии:
1. Правильно. Отличный улов. Спасибо