Сколько IP-адресов нужно для парсинга: формула и пример расчёта

Сколько IP-адресов нужно для парсинга: формула и пример расчёта

Сколько IP нужно для парсинга, считается так: нужная скорость сбора делится на безопасную частоту запросов с одного адреса и умножается на запас 1,3–1,5. Безопасную частоту не угадывают — её находят осторожным замером на конкретном сайте.

Коротко

  • Число адресов = скорость сбора ÷ безопасная частота на один IP × запас.
  • Одновременных запросов обычно нужно намного меньше, чем кажется: их число считается через время ответа.
  • Статичные адреса считают поштучно, а для ротируемого пула считают трафик — количество IP там задаёт размер пула провайдера.
  • Если ошибки не уходят при добавлении адресов, дело обычно не в IP, а в заголовках, поведении скрипта или частоте запросов в целом.

Почему количество IP имеет значение

Большинство сайтов ограничивают частоту запросов с одного адреса. Когда порог превышен, сервер отвечает кодом 429 (слишком много запросов), показывает CAPTCHA или временно закрывает доступ кодом 403. Подробно о таких ответах — в статье «Почему сайт ограничивает доступ».

Если распределить запросы между несколькими адресами, частота на каждый из них снижается, и сбор идёт ровнее. Но число адресов не отменяет главного правила: суммарная нагрузка на сайт должна оставаться разумной.

Важно. Больше IP-адресов не даёт права нагружать сайт сильнее. Планируйте общую скорость сбора так, чтобы она не мешала работе ресурса, и соблюдайте его правила и условия использования.

Формула расчёта

Число IP = R ÷ r × k

Что подставлять

R — нужная скорость сбора: сколько запросов в минуту требует задача.

r — безопасная частота на один адрес: сколько запросов в минуту с одного IP сайт принимает без роста ошибок.

k — запас на адреса, которые временно выпали или получили ограничение; обычно 1,3–1,5.

Скорость R считают от объёма и окна сбора. Если за сутки нужно 100 000 страниц, а собирать можно равномерно 20 часов, то R = 100 000 ÷ 1200 минут ≈ 83 запроса в минуту.

Как найти безопасную частоту на один IP

Порог у каждого сайта свой и нигде не публикуется. Его определяют замером на небольшом числе адресов.

  1. Начните медленно.
    Один запрос в 5–10 секунд с одного адреса — безопасная стартовая точка для большинства сайтов.
  2. Повышайте частоту ступенями.
    Каждую ступень держите хотя бы 15–30 минут: ограничения часто срабатывают не сразу.
  3. Следите за ошибками и временем ответа.
    Рост доли ответов 429, 403 и CAPTCHA или заметное замедление ответов — сигнал остановиться.
  4. Возьмите 50–70% от найденного порога.
    Это и есть r для формулы: так остаётся запас на колебания и ночные изменения правил сайта.

Если сервер присылает заголовок Retry-After, выдерживайте указанную паузу. А если в файле robots.txt задана задержка между запросами, ориентируйтесь на неё как на верхнюю границу частоты.

Пример расчёта

Возьмём задачу из примера выше: 83 запроса в минуту и запас k = 1,3. Результат сильно зависит от того, какую частоту выдерживает сайт.

Безопасная частота на IPАдресов без запасаАдресов с запасом 1,3
1 запрос в минуту84109
2 запроса в минуту4255
6 запросов в минуту1419
Число IP для сбора 100 000 страниц за 20 часов, значения округлены вверх

Разница между первой и последней строкой — почти в шесть раз. Поэтому замер частоты окупается: без него легко купить вдвое больше адресов или, наоборот, упереться в ограничения в первый же день.

Сколько нужно одновременных запросов

Число потоков считается отдельно от числа адресов. Одновременных запросов в среднем столько, сколько их приходит в секунду, умноженное на время ответа (закон Литтла).

При 83 запросах в минуту (около 1,4 в секунду) и времени ответа 2 секунды в работе одновременно будет около 3 запросов. Запускать сотни потоков для такой задачи не нужно: они только создадут всплески нагрузки.

Статичные адреса или ротируемый пул

Формула выше нужна, когда вы покупаете адреса поштучно. С ротируемым пулом логика другая: адресов в нём миллионы, и считать приходится трафик и режим ротации.

ПараметрСтатичные адреса (серверные, ISP)Ротируемый пул (резидентные, мобильные)
ОплатаЗа каждый IP на срокЗа трафик
Что считатьЧисло адресов по формулеОбъём трафика и режим ротации
Контроль частотыВы сами распределяете запросы по адресамЧастоту на адрес снижает ротация
Когда выгоднееМного тяжёлых страниц на одном сайтеНужны разные регионы или много разных адресов при умеренном трафике
Как считать потребность в адресах для разных типов прокси

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

Почему важно разнообразие подсетей

Некоторые системы защиты учитывают не только отдельный IP, но и подсеть, из которой он пришёл. Пятьдесят адресов из одной подсети в таком случае могут восприниматься как один источник. Если сайт строгий, спрашивайте у провайдера, из скольких подсетей собран ваш список адресов.

Признаки, что адресов не хватает

  • Доля ответов 429 растёт к концу дня
    Адреса не успевают «остыть» между запросами — частота на IP выше безопасной.
  • Ошибки собираются на части адресов
    Нагрузка распределяется неравномерно. Проверьте, как скрипт выбирает адрес для следующего запроса.
  • Время ответа растёт без ошибок
    Сайт может замедлять ответы на частые запросы вместо прямого отказа.
  • Ошибки не уходят после добавления адресов
    Значит, дело не в количестве IP: проверьте заголовки, куки, поведение скрипта и общую частоту запросов.

Как это устроено у нас

  • Серверные прокси IPv4 — статичные адреса с оплатой за IP: число берите из расчёта по формуле.
  • ISP-прокси — статичные адреса интернет-провайдеров, когда нужен постоянный IP, к которому сайты относятся как к домашнему.
  • Резидентные прокси — пул с ротацией на каждый запрос, по таймеру или с липкой сессией и оплатой за трафик.

Если для серверных прокси в замере выходит больше сотни адресов, стоит сравнить стоимость с резидентным пулом: при лёгких страницах оплата за трафик нередко выходит дешевле.


Частые вопросы

Можно ли парсить с одного IP?
Можно, если объём небольшой и частота запросов ниже порога сайта. Для регулярного сбора тысяч страниц в день одного адреса обычно не хватает.

Сколько потоков ставить на один IP?
Чаще всего — один-два. Количество одновременных запросов считается через время ответа и почти всегда оказывается небольшим.

Что делать, если пошли ответы 429?
Снизить частоту, выдержать паузу из заголовка Retry-After и только потом добавлять адреса. Повторять запрос сразу бесполезно.

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

Подберём прокси под объём сбора

Расскажите, сколько страниц и с каких сайтов нужно собирать, — менеджер посчитает, что выгоднее: адреса поштучно или трафик.

Получить предложение