Задан только ключ http
Ключ обозначает схему целевого адреса, а не прокси. Словарь только с http направляет через прокси обычный HTTP, а каждый HTTPS-вызов отпускает напрямую, и никакой ошибки об этом не будет.
Направьте requests через один статический ISP-адрес: один IP в сети названного интернет-провайдера, закреплённый за вами на оплаченный период. Код ниже перед публикацией проверили на прокси с аутентификацией.
Коротко: Передайте словарь proxies с ключами http и https, каждому из которых задано http://USERNAME:PASSWORD@HOST:PORT, и requests отправит вызов через прокси; запросы к HTTPS-адресам идут через него туннелем. Для SOCKS5 установите requests[socks], переключите прокси на SOCKS5 в заказе и используйте схему socks5h, чтобы имена хостов разрешал прокси, а не ваш компьютер.
Python requests берёт прокси из словаря, который сопоставляет схему целевого URL с URL прокси. В этом руководстве такой словарь задаётся для одного статического ISP-адреса и показаны три места, где он может находиться: в вызове, в сессии или в окружении.
Большинство прокси, включая наши, требуют логин и пароль. requests берёт их из URL прокси и отправляет прокси при каждом подключении. Для HTTPS-адреса прокси открывает туннель и никогда не видит содержимое запроса. На вкладках с кодом показаны вариант для одного запроса и вариант с сессией.
Хост, порт, логин и пароль: из раздела «Мои прокси» в панели управления или из заказа в API. У каждого адреса свои четыре значения; общего шлюза нет.
http://USERNAME:PASSWORD@HOST:PORT. Если в пароле есть /, ?, # или %, сначала закодируйте его для URL с помощью urllib.parse.quote(password, safe="").
Передайте один и тот же URL ключу http и ключу https. Если задан только http, каждый HTTPS-запрос идёт мимо прокси и уходит с вашего собственного адреса.
Запросите страницу, которая показывает IP отправителя, или откройте What Is My IP через тот же прокси и убедитесь, что это купленный вами адрес.
Всегда передавайте timeout=: по умолчанию requests ждёт бесконечно, и зависшее соединение тогда выглядит как зависший скрипт.
import requests
# The four values come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"
response = requests.get(
"https://example.com/",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
response.raise_for_status()
print(response.status_code)
import requests
proxy = "http://USERNAME:PASSWORD@HOST:PORT"
with requests.Session() as session:
# HTTP_PROXY / HTTPS_PROXY in the environment would override
# session.proxies; this makes the session use only its own setting.
session.trust_env = False
session.proxies.update({"http": proxy, "https": proxy})
response = session.get("https://example.com/", timeout=30)
response.raise_for_status()
print(response.status_code)
# pip install "requests[socks]"
import requests
# Switch the proxy to SOCKS5 first; use the values the order then shows.
# socks5h: the proxy resolves the hostname, not your machine.
proxy = "socks5h://USERNAME:PASSWORD@HOST:PORT"
response = requests.get(
"https://example.com/",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
response.raise_for_status()
print(response.status_code)
Каждый пример подключается через HTTP-прокси с логином и паролем, кроме примера для SOCKS5: для него прокси сначала нужно переключить на SOCKS5, после чего в заказе появятся новый порт и новые учётные данные. Замените четыре слова, набранные заглавными буквами, значениями из своего заказа.
| Охват | Учётные данные | Когда использовать | |
|---|---|---|---|
| proxies= в вызове | Один этот запрос | В URL | Скрипт с несколькими вызовами |
| Session.proxies | Все запросы сессии | В URL | Всё, что длиннее, с trust_env, равным False |
| HTTP_PROXY и HTTPS_PROXY | Все вызовы requests в процессе | В URL | Код, который нельзя править; в NO_PROXY перечисляются хосты, которые нужно обойти |
| URL socks5h:// | Тот охват, на котором он задан | В URL | Когда имена хостов должен разрешать прокси |
Ключ обозначает схему целевого адреса, а не прокси. Словарь только с http направляет через прокси обычный HTTP, а каждый HTTPS-вызов отпускает напрямую, и никакой ошибки об этом не будет.
С socks5 имя хоста разрешает ваш компьютер и передаёт прокси IP. С socks5h его разрешает прокси, поэтому DNS-запрос и ответ на него приходят из сети прокси, а это важно для сайтов, которые отвечают в зависимости от местоположения.
Косая черта, вопросительный знак или решётка в пароле обрывают URL, и requests выдаёт ошибку, не дойдя до прокси; знак процента декодируется как экранирование. Закодируйте пароль для URL или используйте аутентификацию по белому списку IP и уберите учётные данные.
requests читает HTTP_PROXY, HTTPS_PROXY и NO_PROXY, если в сессии не задать trust_env равным False, и эти переменные важнее Session.proxies. Устаревшая переменная на сервере может отправить трафик сессии не туда, куда вы собирались, или в обход прокси.
Впишите логин и пароль в URL прокси, http://USERNAME:PASSWORD@HOST:PORT, и передайте его и для ключа http, и для ключа https. requests отправляет учётные данные прокси, а тот отвечает 407, если они неверны. Пароль с зарезервированными символами закодируйте или используйте вместо него белый список IP.
Установите дополнение командой pip install requests[socks], переключите сам прокси на SOCKS5 в заказе и укажите порт и учётные данные, которые после этого покажет заказ, в URL socks5h://. Одной смены схемы недостаточно: адрес, настроенный на HTTP, не отвечает по SOCKS5, пока его не переключат. SOCKS5
Да. Добавьте публичный IPv4-адрес, с которого работает ваш скрипт, в белый список прокси одним вызовом API, PUT /orders/ORDER_ID/whitelist, или через MCP-сервер; в панели управления для этого пока нет настройки. После этого прокси принимает подключения с этого адреса без учётных данных, по HTTP и по SOCKS5, а URL становится http://HOST:PORT. Пока белый список задан, прокси пропускает только адреса из него, а логин и пароль для этого заказа перестают работать; если отправить пустой список, белый список выключается и вход по паролю снова работает.
Нет. Статический ISP-прокси даёт один адрес на оплаченный период, и каждый запрос через него уходит с этого адреса. Если задаче нужен новый адрес на каждый запрос, это ротационный пул, а его мы пока не продаём.
Запросите через тот же прокси страницу, которая возвращает адрес отправителя, или откройте What Is My IP в браузере, настроенном на этот прокси. Если там ваш собственный адрес, скорее всего, не задан ключ https. Мой IP
Тестирование собственных сайтов по регионам, проверка качества, верификация рекламы, исследование цен и рынка и защита бренда не требуют проверки по нашей политике допустимого использования. Прокси не обходит CAPTCHA, обнаружение ботов, ограничения частоты запросов и блокировки аккаунтов, а политика запрещает использовать его для таких попыток. Политика допустимого использования