ProxyHealthList

Главная / Сценарии / Python requests

Как использовать прокси в Python requests

Все способы направить requests через прокси — HTTP, HTTPS, SOCKS5, переменные окружения, сессии и ротация — с прокси из бесплатного списка, проверяемого каждый час.

Список HTTP (TXT) Список SOCKS5 (TXT)

Базовый HTTP / HTTPS прокси

Простейший вариант — один прокси обрабатывает и http, и https, без дополнительных пакетов.

import requests

proxy = "http://1.2.3.4:8080"
r = requests.get(
    "https://httpbin.org/ip",
    proxies={"http": proxy, "https": proxy},
    timeout=10,
)
print(r.json())

SOCKS5 прокси

Установите поддержку SOCKS один раз и используйте схему socks5h://, чтобы DNS резолвился через прокси.

pip install "requests[socks]"
proxy = "socks5h://1.2.3.4:1080"
r = requests.get("https://httpbin.org/ip",
                 proxies={"http": proxy, "https": proxy}, timeout=10)

Прокси для всей сессии

s = requests.Session()
s.proxies = {"http": "http://1.2.3.4:8080", "https": "http://1.2.3.4:8080"}
s.get("https://example.com")

Переменные окружения

export HTTP_PROXY="http://1.2.3.4:8080"
export HTTPS_PROXY="http://1.2.3.4:8080"
python your_script.py

Частые вопросы

Почему запрос через прокси даёт таймаут?

Бесплатные прокси нестабильны. Ставьте короткий timeout и переходите к следующему при сбое.

http:// или socks5h://?

Используйте http:// для HTTP и socks5h:// для SOCKS5; h резолвит DNS удалённо.

Работают ли с httpx или aiohttp?

Да — те же host:port работают с прокси-URL в том же виде.

Связанное