Язык / SDK
Настройка WeProxy proxy для Python
Частый способ использовать proxy в Python — библиотека requests. Не храните учётные данные в коде; читайте их из переменных окружения. Ниже примеры HTTP-туннеля и SOCKS5.
Один из самых распространённых способов использовать прокси в проектах Python — библиотека requests. Прокси можно применить к одному запросу, к сессии или ко всем совместимым запросам через переменные окружения. В этом руководстве показаны примеры HTTP и SOCKS5 для подключения WeProxy.
Требования
Установите Python 3 и библиотеку Requests:
python -m pip install requests
Если будете использовать SOCKS5, установите дополнительные зависимости:
python -m pip install "requests[socks]"
В панели WeProxy получите хост, порт, имя пользователя, пароль и протокол, который поддерживает ваш продукт.
Подготовка переменных окружения
Храните учётные данные в переменных окружения операционной системы, а не в исходном коде.
macOS/Linux:
export WEPROXY_HOST="PROXY_HOST"
export WEPROXY_PORT="PROXY_PORT"
export WEPROXY_USERNAME="PROXY_USERNAME"
export WEPROXY_PASSWORD="PROXY_PASSWORD"
PowerShell:
$env:WEPROXY_HOST="PROXY_HOST"
$env:WEPROXY_PORT="PROXY_PORT"
$env:WEPROXY_USERNAME="PROXY_USERNAME"
$env:WEPROXY_PASSWORD="PROXY_PASSWORD"
Эти переменные приведены лишь как пример. В продакшене используйте менеджер секретов и не добавляйте файлы .env в Git.
Использование HTTP-прокси с Requests
import os
from urllib.parse import quote
import requests
host = os.environ["WEPROXY_HOST"]
port = os.environ["WEPROXY_PORT"]
username = quote(os.environ["WEPROXY_USERNAME"], safe="")
password = quote(os.environ["WEPROXY_PASSWORD"], safe="")
proxy_url = f"http://{username}:{password}@{host}:{port}"
proxies = {
"http": proxy_url,
"https": proxy_url,
}
response = requests.get(
"https://api.ipify.org?format=json",
proxies=proxies,
timeout=30,
)
response.raise_for_status()
print(response.json())
То, что URL прокси начинается с http://, не означает, что нельзя подключиться к HTTPS-целям. Requests может устанавливать туннель к HTTPS-целям через HTTP-прокси. Если панель указывает другую схему, ориентируйтесь на данные продукта.
Использование прокси с Requests Session
Чтобы использовать ту же настройку для нескольких запросов, можно создать Session:
with requests.Session() as session:
session.proxies.update(proxies)
response = session.get("https://api.ipify.org?format=json", timeout=30)
response.raise_for_status()
print(response.json())
Согласно документации Requests, значения прокси в системном окружении могут переопределить session.proxies. Когда нужен однозначный выбор прокси, надёжнее передавать параметр proxies=proxies напрямую в каждый запрос.
Использование SOCKS5-прокси
proxy_url = f"socks5h://{username}:{password}@{host}:{port}"
proxies = {
"http": proxy_url,
"https": proxy_url,
}
response = requests.get(
"https://api.ipify.org?format=json",
proxies=proxies,
timeout=30,
)
print(response.json())
При socks5h:// разрешение доменного имени выполняется на стороне прокси. При socks5:// DNS-разрешение выполняется на стороне клиента.
Ошибки прокси в Python
407 Proxy Authentication Required
Неверное имя пользователя или пароль. Проверьте, что специальные символы прошли URL-кодирование и что продукт поддерживает аутентификацию по имени пользователя и паролю.
ProxyError или тайм-аут соединения
Проверьте хост, порт, протокол и статус пакета. Если цель не поддерживает IPv6, соединение через IPv6-прокси может не установиться.
Виден реальный IP
Убедитесь, что словарю proxies передан в запрос. Переменная окружения NO_PROXY может исключать целевой домен.
Источник
Другие интеграции
Смотрите другой инструмент?
Начать
Подключитесь к WeProxy сейчас
Создайте аккаунт, сразу используйте 100 МБ бесплатного residential-трафика и повторите шаги выше в своей среде.








