Прокси для парсинга: ротация против бана
Любой парсер рано или поздно упирается в один и тот же барьер: сотни и тысячи запросов уходят с одного адреса, и сервер это замечает. Реакция площадки предсказуема, и она бьёт по всему процессу сбора данных сразу.
Что ломается при сборе с одного IP
- Капча. Сайт подсовывает проверку на каждый шаг, автоматический обход останавливается.
- Rate-limit. В ответ прилетают коды 429 (Too Many Requests) и 503 (Service Unavailable), часть страниц не отдаётся.
- Бан адреса. IP уходит в чёрный список, повторные заходы бесполезны.
- Обрыв соединения. Соединения рвутся на середине, данные приходят битыми или неполными.
Причина общая: слишком плотный поток запросов с одной точки выглядит как нагрузка, а не как живой трафик. Защитные системы считают частоту обращений, смотрят на заголовки, поведение и репутацию адреса. Как только счётчик превышает порог, включается фильтр, и сбор идёт с потерями или встаёт.
Как это решает пул с ротацией
Вместо одного адреса подключается пул из множества IP. Запросы распределяются по пулу, на каждый отдельный адрес приходится небольшая, естественная доля обращений. Ротация меняет исходящий IP по таймеру или по числу запросов, площадка не успевает связать активность с одной точкой.
- Нагрузка размазывается, частота с одного адреса падает ниже порогов срабатывания.
- Капча и коды 429/503 перестают появляться пачками, сбор идёт ровно.
- Забаненный адрес не роняет весь процесс: следующий запрос уходит с другого IP.
- Обрывы сглаживаются, нагрузка на каждый узел остаётся в комфортных рамках.
Размер пула подбирают под объём: чем больше страниц нужно собрать за единицу времени, тем шире набор адресов. Слишком маленький пул при высокой частоте снова упрётся в лимиты.
Интеграция и форматы
Прокси задаётся строкой IP:PORT с логином и паролем и подключается почти к любому инструменту:
- Python (requests, httpx): адрес пула передаётся через параметр proxies.
- Scrapy: ротация вешается на middleware, каждый запрос уходит через новый IP.
- Puppeteer и Playwright: прокси прописывается в аргументах запуска браузера.
- A-Parser: список загружается прямо в настройки потоков.
По протоколам поддерживаются HTTP, HTTPS и SOCKS5. SOCKS5 берут там, где нужен низкий уровень и работа не только с веб-трафиком.
Серверные или резидентские
Два типа прокси закрывают разные задачи. Серверные дают максимальную скорость канала. Резидентские выглядят как адреса обычных провайдеров и лучше проходят антибот-защиту.
- Скорость. Серверные очень высокая, резидентские средняя, зависит от узла.
- Обход антибота. Серверные средний, резидентские высокий.
- Цена. Серверные дешевле, резидентские дороже.
- Когда брать. Серверные под массовый объём и лояльные площадки, резидентские под жёсткие фильтры и капчи.
Часто оба типа комбинируют: серверные тянут основной объём, резидентские подключают на страницах с агрессивной защитой.
Где взять пул под парсинг
Готовый вариант с ротацией из коробки предлагает WinGate. В наличии приватные IPv4 и SOCKS5 с ротацией, а пул worldmix закрывает сбор без привязки к одной точке. Трафик безлимитный, объём страниц не упирается в тариф.
- Протоколы HTTP, HTTPS и SOCKS5 в одном наборе.
- До 5000 потоков, запас под тяжёлые многопоточные сценарии.
- Формат IP:PORT, который сразу встаёт в Python, Scrapy, Puppeteer, Playwright и A-Parser.
Прежде чем гонять боевой сбор, проверьте связку на своих целевых сайтах. Для этого есть бесплатный тест прокси: подключаете пул к парсеру, смотрите на долю ответов 200 против 429/503, частоту капчи и стабильность. Если данные идут ровно, конфигурацию масштабируют на полный объём.