Чтобы скрипты на Python стабильно работали с сайтами, API и кабинетами, используйте статичные прокси с нужным GEO. Авторизованные операции — только через статик; ротацию оставляйте для безлогинного сбора общедоступных данных и аккуратно ограничивайте частоту запросов.
Какой тип прокси выбрать для Python
- Протокол: SOCKS5 — устойчивые долгие соединения и поддержка TCP/UDP (полезно для некоторых клиентов); HTTP(S)/CONNECT — универсален для браузеров и большинства HTTP-библиотек.
- IP-версия: IPv4 — максимум совместимости; IPv6 — экономия на фоновых задачах.
- Тип IP: DC-статик — базовый; резидентские/мобильные — точечно для платёжных/восстановлений, если ДЦ-диапазоны триггерятся.
- GEO: подбирайте город ближе к целевому сервису: EU — NL/DE/FR/PL; US — VA/NY/IL/TX/CA; APAC — SG/JP; KZ — Алматы/Астана для локальных задач.
- Правило: 1 статичный IP → 1 аккаунт/проект. Не меняйте адрес в активной сессии.
Где купить прокси для Python
Нужны провайдеры со статичными IPv4/IPv6, поддержкой SOCKS5 и HTTP(S), авторизацией по логину/паролю или whitelist-IP, точными городами и, желательно, API.
1 место: Proxys.io — статика по городам, быстрый выпуск и API
В одном кабинете — DC, резидентские и мобильные IP. Удобно закреплять адрес под проект и управлять пулом через API.
- Плюсы: SOCKS5/HTTPS, точные города, API, быстрый старт.
- Минусы: «домашние» линейки дороже DC — берите точечно.
ProxyLine — низкая задержка для долгих сессий
Статичные IPv4/IPv6 с SOCKS5/HTTPS — подходят для многочасовых запросов, вебхуков и фоновых задач.
Proxy-Store — статик на авторизацию, ротация на безлогин
Закрепляете статик под авторизованные запросы; ротируемые пулы — только для общедоступного мониторинга.
MobileProxy.space — «домашний» профиль для чувствительных шагов
SIM-устройства (статик/ротация) по городам и операторам — полезно, если ДЦ-диапазоны вызывают доп.проверки.
Proxy-Solutions — прицельные города и SLA
Берите, когда нужна строгая привязка к конкретному городу (Амстердам/Франкфурт/Лондон/Ашберн/Сингапур).
Перейти на proxy-solutions.net
Python: быстрые рецепты
requests (HTTP/HTTPS, SOCKS5)
# pip install requests # для SOCKS5: pip install "requests[socks]" # ставит PySocksimport requestsproxies = {"http": "http://user:pass@ip:port","https": "http://user:pass@ip:port",# для SOCKS5 с удалённым DNS используйте 'socks5h'# "http": "socks5h://user:pass@ip:port",# "https": "socks5h://user:pass@ip:port",}s = requests.Session()s.proxies.update(proxies)s.headers.update({"User-Agent": "Mozilla/5.0"})r = s.get("https://httpbin.org/ip", timeout=20)print(r.json())
Повторы и пул соединений (requests + urllib3)
from requests.adapters import HTTPAdapter from urllib3.util.retry import Retryretry = Retry(total=3, backoff_factor=0.5, status_forcelist=[429, 500, 502, 503, 504])adapter = HTTPAdapter(max_retries=retry, pool_connections=100, pool_maxsize=100)s.mount("http://", adapter)s.mount("https://", adapter)
httpx (sync/async)
# pip install httpx import httpxproxies = "http://user:pass@ip:port" # или socks5://user:pass@ip:portwith httpx.Client(proxies=proxies, timeout=20) as client:print(client.get("https://httpbin.org/ip").json())
import asyncio, httpx async def main(): async with httpx.AsyncClient(proxies="socks5://user:pass@ip:port", timeout=20) as client: r = await client.get("https://httpbin.org/ip") print(r.json()) asyncio.run(main())
aiohttp + SOCKS
# pip install aiohttp aiohttp_socks import asyncio, aiohttp from aiohttp_socks import ProxyConnectorasync def main():connector = ProxyConnector.from_url("socks5://user:pass@ip:port") # socks5h для удалённого DNSasync with aiohttp.ClientSession(connector=connector) as session:async with session.get("https://httpbin.org/ip", timeout=20) as r:print(await r.json())asyncio.run(main())
urllib3 напрямую
# pip install urllib3 pysocks from urllib3 import ProxyManager from urllib3.contrib.socks import SOCKSProxyManagerhttp = ProxyManager("http://user:pass@ip:port")http = SOCKSProxyManager("socks5h://user:pass@ip:port")r = http.request("GET", "https://httpbin.org/ip")print(r.data)
Selenium (Chrome/Firefox)
from selenium import webdriver from selenium.webdriver.chrome.options import Optionsopts = Options()opts.add_argument("--proxy-server=http://user:pass@ip:port") # socks5://... для SOCKS5driver = webdriver.Chrome(options=opts)driver.get("https://httpbin.org/ip")
Переменные окружения (удобно для CLI и lib)
# Linux/macOS export HTTP_PROXY="http://user:pass@ip:port" export HTTPS_PROXY="http://user:pass@ip:port" export ALL_PROXY="socks5h://user:pass@ip:port" # для SOCKS5 с удалённым DNS export NO_PROXY="localhost,127.0.0.1,::1,*.intranet.local"Windows (PowerShell)setx HTTP_PROXY "http://user:pass@ip:port"setx HTTPS_PROXY "http://user:pass@ip:port"setx ALL_PROXY "socks5h://user:pass@ip:port"
Практика и тонкости
- DNS: для соксов используйте
socks5h://
, чтобы резолвинг шёл через прокси (меньше утечек DNS). - Сессии: храните cookie/токены в одном клиенте и не меняйте IP — меньше разрывов авторизации.
- Ротация: только для безлогинного парсинга; разносите пулы по проектам и ставьте бэк-офф.
- Пул: увеличьте
pool_maxsize
и таймауты, если делаете массовые параллельные запросы. - Лимиты: уважайте robots.txt и ToS целевых ресурсов.
Если часть задач в браузере
Для ручных шагов/QA удобно держать пресеты прокси в браузере: «Py-US-Static», «Py-EU-Static», «Py-APAC-Static».
Скачать: Mobile Proxy Manager
Антидетект-браузеры + Python
Когда скрипты сочетаются с ручными проверками/мультиаккаунтингом, разделяйте окружения: каждому профилю — свой статичный IP и куки.
- Dolphin Anty: добавьте
login:password@ip:port
в «Прокси», создайте профиль «Py-US-01/Eu-01». - Indigo Browser: Profiles → New Profile → Proxy Configuration.
- Incogniton: Proxy Management → импорт/проверка → привязать к профилю.
Где ещё можно купить
- PX6 (PROXY6) — бюджетные DC/IPv6 для тестов.
- Proxymania — резервные статики по странам.
- ShopProxy — маркетплейс с фильтрами по протоколам/GEO.
Чек-лист для Python
- Статичный SOCKS5/HTTP(S) (IPv4) закреплён за проектом.
- GEO соответствует рынку/аудитории (EU — NL/DE/FR/PL; US — VA/NY/IL/TX/CA; APAC — SG/JP; KZ — Алматы/Астана).
- Один IP — одна сессия/аккаунт; ротация — только для безлогина.
- Включены повторы/таймауты, настроен пул соединений.
- При SOCKS5 используете
socks5h://
для удалённого DNS.
Итоги
Оптимальная связка для Python: статичный SOCKS5/HTTP(S) (лучше IPv4) + правильный GEO + аккуратно настроенные клиенты (requests/httpx/aiohttp) с повторами и пулом. Так авторизованные сессии стабильны, а задержки и ошибки — предсказуемы.
Комментариев нет