NP NEONPROXYPROXY NETWORK
КупитьЦеныFAQПартнёркаБлог Прокси-чекерМой IPAPI TG-бот

Прокси в Python requests: настройка за 5 минут

Библиотека requests — стандарт де-факто для HTTP в Python. Подключение прокси NEONPROXY занимает несколько строк, но детали зависят от протокола: HTTPS-прокси настраивается иначе, чем SOCKS5. В этом гайде — рабочие примеры с авторизацией, ротацией и обработкой типичных ошибок.

Формат данных NEONPROXY

После заказа в кабинете вы получаете строку вида host:port:login:password. Для HTTPS-прокси URL строится так: http://login:password@host:port. Обратите внимание: схема http:// в URL прокси — это нормально даже для HTTPS-трафика; requests использует CONNECT-туннель.

SVYAZVPN — свобода без границ

Базовый запрос через HTTPS-прокси

import requests PROXY = "http://user_a1b2:pass_x9y8@185.22.34.89:8080" proxies = { "http": PROXY, "https": PROXY, } resp = requests.get( "https://api.ipify.org?format=json", proxies=proxies, timeout=15, ) print(resp.json()) # IP прокси, не ваш домашний

Если ответ приходит с вашим реальным IP — прокси не применился. Проверьте логин, пароль и что порт совпадает с выданным в кабинете.

SOCKS5 с PySocks

Для SOCKS5 установите зависимость: pip install requests[socks]. Формат URL: socks5://login:password@host:port.

proxies = { "http": "socks5://user:pass@185.22.34.89:1080", "https": "socks5://user:pass@185.22.34.89:1080", } resp = requests.get("https://example.com", proxies=proxies, timeout=20)

SOCKS5 удобен, когда нужен единый туннель для HTTP и нестандартных портов без отдельной настройки на каждый протокол.

Ротация пула адресов

При парсинге распределяйте запросы по списку прокси, чтобы снизить нагрузку на один IP. Простейший round-robin:

import itertools POOL = [ "http://u1:p1@10.0.0.1:8080", "http://u2:p2@10.0.0.2:8080", ] cycle = itertools.cycle(POOL) def fetch(url): proxy = next(cycle) return requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=15) for page in range(100): r = fetch(f"https://site.com/page/{page}") print(r.status_code)

Список можно подгружать из API NEONPROXY — см. статью про интеграцию API.

Обработка ошибок

Типичные исключения: requests.exceptions.ProxyError — неверные учётные данные или мёртвый прокси; ConnectTimeout — перегрузка или блокировка; SSLError — редко при корректном HTTPS-прокси, чаще при MITM на стороне сети.

Оборачивайте запросы в retry с экспоненциальной паузой и переключением на следующий адрес из пула. Не делайте больше 3–5 повторов на один URL без смены прокси — иначе усилите блокировку.

Сессии и заголовки

requests.Session() переиспользует соединения и cookies — полезно для многошагового парсинга. Прокси задаётся на сессию один раз:

session = requests.Session() session.proxies = {"http": PROXY, "https": PROXY} session.headers.update({"User-Agent": "MyBot/1.0"}) r = session.get("https://example.com/api")

Не передавайте в заголовках X-Forwarded-For с реальным IP — это снижает анонимность. Подробнее о мифах — в материале про анонимность.

IPv6 в requests

Если прокси выдан на IPv6-адресе, заключите host в квадратные скобки в URL: http://user:pass@[2a01:4f8:...]:8080. Убедитесь, что целевой сайт тоже доступен по IPv6.