Я получаю URL-адрес с:
r = requests.get("http://myserver.com")
Как я вижу в "access.log" "myserver.com", используется прокси-сервер клиентской системы. Но я хочу отключить использование прокси-серверов вообще с помощью requests
.
Я получаю URL-адрес с:
r = requests.get("http://myserver.com")
Как я вижу в "access.log" "myserver.com", используется прокси-сервер клиентской системы. Но я хочу отключить использование прокси-серверов вообще с помощью requests
.
Единственный способ, с помощью которого я в настоящее время осведомлен о отключении прокси, - это следующее:
session.trust_env
в False
import requests
session = requests.Session()
session.trust_env = False
response = session.get('http://www.stackoverflow.com')
Это основано на этом комментарии Lukasa и (ограниченной) документации для requests.Session.trust_env
.
Примечание. Настройка trust_env
- False
также игнорирует следующее:
.netrc
(code)REQUESTS_CA_BUNDLE
или CURL_CA_BUNDLE
(code)Если вы только хотите отключить прокси-серверы для определенного домена (например, localhost
), вы можете использовать переменную среды NO_PROXY
import os
import requests
os.environ['NO_PROXY'] = 'stackoverflow.com'
response = requests.get('http://www.stackoverflow.com')
Вы можете выбрать прокси для каждого запроса. Из документов:
import requests
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
requests.get("http://example.org", proxies=proxies)
Итак, чтобы отключить прокси-сервер, просто установите для каждого значение None:
import requests
proxies = {
"http": None,
"https": None,
}
requests.get("http://example.org", proxies=proxies)
запрашивает библиотеку в отношении переменных среды. http://docs.python-requests.org/en/latest/user/advanced/#proxies
Поэтому попробуйте удалить переменные среды HTTP_PROXY и HTTPS_PROXY.
import os
for k in list(os.environ.keys()):
if k.lower().endswith('_proxy'):
del os.environ[k]