Я получаю 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')
Основано на this comment by Lukasa и (с ограниченной) документацией по requests.Session.trust_env
.
Примечание: Установка trust_env
к False
также игнорирует следующее:
.netrc
(code)REQUESTS_CA_BUNDLE
или CURL_CA_BUNDLE
(code)Однако, если вы хотите отключить только прокси для конкретного домена (как localhost
), вы можете использовать NO_PROXY
environment variable:
import os
import requests
os.environ['NO_PROXY'] = 'stackoverflow.com'
response = requests.get('http://www.stackoverflow.com')
запросы библиотеки Уважает переменные окружения. 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]
Он определенно не проверяет переменные окружения на Mac. –
Вы можете выбрать прокси для каждого запроса. От the docs:
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)
У вас есть чек на 2-й случай. В моем случае он не работает, то есть он все еще использует системный прокси. –
@sonukumar Что вы подразумеваете под «2-м корпусом?» – jtpereyda
ой! Я имею в виду использование параметра proxies для получения метода. –
ли не добавлять доверенные лица = Нет для запроса работы? – Lesleh
@Lesleh, по умолчанию для аргумента ключевого слова 'proxies', что означает, что он вообще не изменит поведение. –
@ Lesleh Я пробовал это и, к сожалению, не работает. :( – t777