К основному содержанию
Proxy5GСтатьиВойти
Практическое применение

Прокси для парсинга: какие выбрать и как настроить

Зачем парсеру прокси, чем мобильные отличаются от серверных, как настроить ротацию IP и нагрузку и какие правила сайтов и закона нужно соблюдать.

Парсинг — автоматический сбор данных с сайтов: цен, наличия товаров, объявлений, позиций в поиске. Когда запросов немного, хватает обычного подключения. Когда их тысячи, сайт быстро замечает, что с одного адреса идёт слишком много однотипного трафика, и начинает отвечать капчей, ошибкой или пустыми страницами.

Прокси позволяют распределить запросы между разными IP. Ниже — какой тип прокси под какую задачу подходит, как настроить ротацию и нагрузку и где проходят границы допустимого.

Сначала — правила

Прежде чем выбирать прокси, ответьте на три вопроса:

  1. Разрешает ли сайт сбор данных? Посмотрите пользовательское соглашение и файл robots.txt. Если у сайта есть официальный API, обычно правильнее пользоваться им.
  2. Есть ли в данных персональная информация? Имена, телефоны, профили людей — это персональные данные, их сбор и хранение регулирует закон.
  3. Не навредит ли нагрузка сайту? Тысячи запросов в секунду могут положить небольшой сервис. Это уже не парсинг, а атака.

Прокси — сетевой инструмент. Он не делает законным то, что запрещено, и не снимает ответственность за нарушение правил сайта.

Какие прокси бывают для парсинга

Серверные (дата-центр). Дешёвые и быстрые, но сайты легко узнают такие адреса: обычные люди с серверов не ходят. Подходят для сайтов, которые не ограничивают ботов, и для тестов.

Резидентные. 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.