Прокси для парсинга: какие выбрать и как настроить
Зачем парсеру прокси, чем мобильные отличаются от серверных, как настроить ротацию IP и нагрузку и какие правила сайтов и закона нужно соблюдать.
Парсинг — автоматический сбор данных с сайтов: цен, наличия товаров, объявлений, позиций в поиске. Когда запросов немного, хватает обычного подключения. Когда их тысячи, сайт быстро замечает, что с одного адреса идёт слишком много однотипного трафика, и начинает отвечать капчей, ошибкой или пустыми страницами.
Прокси позволяют распределить запросы между разными IP. Ниже — какой тип прокси под какую задачу подходит, как настроить ротацию и нагрузку и где проходят границы допустимого.
Сначала — правила
Прежде чем выбирать прокси, ответьте на три вопроса:
- Разрешает ли сайт сбор данных? Посмотрите пользовательское соглашение
и файл
robots.txt. Если у сайта есть официальный API, обычно правильнее пользоваться им. - Есть ли в данных персональная информация? Имена, телефоны, профили людей — это персональные данные, их сбор и хранение регулирует закон.
- Не навредит ли нагрузка сайту? Тысячи запросов в секунду могут положить небольшой сервис. Это уже не парсинг, а атака.
Прокси — сетевой инструмент. Он не делает законным то, что запрещено, и не снимает ответственность за нарушение правил сайта.
Какие прокси бывают для парсинга
Серверные (дата-центр). Дешёвые и быстрые, но сайты легко узнают такие адреса: обычные люди с серверов не ходят. Подходят для сайтов, которые не ограничивают ботов, и для тестов.
Резидентные. IP домашних провайдеров. Выглядят как обычные посетители, но качество и скорость сильно зависят от поставщика.
Мобильные. IP сотовых операторов. Одним адресом пользуются много абонентов, поэтому сайты редко блокируют такие IP целиком. Минусы: скорость ниже, чем у серверных, а смена IP занимает время. Подробное сравнение — в статье мобильные и серверные прокси.
Мобильные прокси оправданы там, где серверные уже не проходят: сайт с жёсткой защитой от ботов, мобильная версия, выдача, которая зависит от оператора или региона.
Ротация IP
Ротация — смена внешнего IP. Для парсинга это главный рычаг: запросы распределяются по разным адресам, и ни один IP не получает слишком много.
Варианты:
- по таймеру — IP меняется сам через заданный интервал;
- вручную по ссылке — парсер дёргает ссылку смены, когда решит, что пора (например, после капчи или каждых N страниц);
- без смены — постоянный IP, если нужно держать одну сессию.
Важный момент: в момент смены активные соединения обрываются. Парсер должен уметь повторить запрос, а не падать с ошибкой. Как устроена ротация, описано в статьях как работает ротация мобильного IP и как работает ручная смена IP.
Какие режимы смены IP есть у Proxy5G, описано на странице мобильные прокси с ротацией IP.
HTTP(S) или SOCKS5
Большинство библиотек для парсинга (requests и httpx в Python, axios в Node.js, Scrapy) работают с HTTP(S)-прокси из коробки. SOCKS5 обычно требует дополнительного пакета или настройки.
Пример для Python с библиотекой requests:
import requests
proxy = "http://логин:пароль@адрес:порт"
response = requests.get(
"https://example.com/catalog",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
print(response.status_code)
Если подключение работает через SOCKS5, адрес начинается с socks5h://
(буква h значит, что DNS-запросы тоже пойдут через прокси), а для requests
понадобится пакет requests[socks]. Подробнее о выборе протокола — в статье
HTTP(S) и SOCKS5: какой протокол выбрать.
Нагрузка: сколько запросов можно
Универсальной цифры нет, но есть разумные правила:
- Паузы между запросами. Случайная задержка в несколько секунд выглядит естественнее, чем запросы строго каждые 100 миллисекунд.
- Ограничение параллельных потоков на один IP. Десятки одновременных соединений с одного адреса заметны.
- Повтор при ошибке с паузой. Если сайт ответил 429 (слишком много запросов), нужно подождать, а не долбить снова.
- Кэширование. Не скачивайте одну и ту же страницу десять раз.
Мобильный прокси — это реальный канал оператора со своей скоростью. Если парсер грузит страницы медленно, проверьте сначала сам канал. Как это сделать, описано в статье как проверить скорость мобильного прокси.
Признаки, что сайт вас заметил
- капча на каждом запросе;
- код ответа 403 или 429;
- пустая страница или страница с другим содержимым, чем в браузере;
- резкий рост времени ответа.
В этом случае снизьте частоту, смените IP и проверьте, не отличаются ли заголовки парсера от обычного браузера (например, User-Agent).
Коротко
- Сначала правила сайта,
robots.txtи закон о персональных данных; если есть API — лучше API. - Серверные прокси — для простых сайтов, мобильные — для сайтов с защитой от ботов.
- Ротация IP распределяет нагрузку, но рвёт соединения — парсер должен уметь повторять запрос.
- Паузы, ограничение потоков и реакция на 429 важнее, чем количество IP.