• Технології

Як збирати веб-дані у великих обсягах, не потрапляючи під блокування

  • Valentin Ghita
  • 6 min read

Вступ

Ваш скрейпер чудово працює на кількох сотнях сторінок. Направте його на кількасот тисяч — і половина ваших запитів повернеться з кодом 403, CAPTCHA або порожніми сторінками. Парсер не дав збій. Ціль помітила, що ваш трафік не поводиться як людина, і почала чинити опір.

Масовий скрейпінг — це, здебільшого, гра в те, щоб не виділятися. Будь-який сайт, який варто скрейпувати, використовує ті чи інші засоби виявлення ботів, і кожен зайвий запит — це ще одна можливість потрапити під підозру. Цього можна уникнути, дотримуючись основних правил: правильні проксі для веб-скрейпінгу, розумна частота запитів, запити, що імітують поведінку справжнього браузера, та план дій на випадок, якщо сайт почне чинити опір. У цій статті описано, як саме відбувається блокування та як побудувати конвеєр, що продовжуватиме збирати дані, не спрацьовуючи всі сигнали тривоги.

Чому сайти блокують автоматизований збір даних

Сайти блокують скрейпери не тому, що хочуть ускладнювати життя. Вони блокують, бо ваш трафік коштує їм грошей і розкриває дані, які вони воліли б зберегти. Один агресивний скрейпер може відправляти тисячі запитів за хвилину, перевантажуючи сервери та спотворюючи аналітику. Ціни, переліки товарів та відгуки — це саме те, чого прагне конкурент, тому сайти, що володіють цими даними, захищають їх найретельніше. Вважайте, що ваш об’єкт вже підготувався до таких користувачів, як ви.

Як працюють системи блокування

Блокування рідко зводиться до одного правила. Більшість систем захисту ведуть поточний підрахунок балів для кожного відвідувача, і перевищення межі призводить до появи CAPTCHA або закритих дверей. Цей підрахунок відповідає на три питання: хто ви, як швидко ви дієте та як ви виглядаєте зблизька.

Хто ви — це репутація IP-адреси: відомий діапазон дата-центру або адреса, яка раніше порушувала правила, одразу отримує мінуси. Як швидко ви дієте — це частота запитів. Як ви виглядаєте — це ваш «відбиток пальця»: заголовки, які ви надсилаєте, та ваш TLS-рукостискання, що видають, чи звертається справжній браузер, чи просто скрипт.

Cloudflare та Akamai об’єднують усі три показники в динамічний рейтинг для кожного запиту. Саме тому один скрейпер безперешкодно проходить через невеликий сайт, а на захищеному сайті, де використовується той самий код, натрапляє на перешкоду.

Створення пулу проксі-серверів для масштабування

Почніть з того, хто ви є, адже одна IP-адреса не може впоратися з великим завданням. Надішліть сто тисяч запитів з однієї адреси — і ви швидко спрацюєте систему перевірки репутації. Пул розподіляє це навантаження між багатьма IP-адресами, щоб жодна з них не виділялася — це базовий рівень будь-якої великомасштабної системи збору даних. Проксі-сервери для веб-скрейпінгу, які ви обираєте тут, визначають верхню межу для всього подальшого процесу.

Building a proxy pool for scale

На сайтах зі слабким захистом або без нього основну роботу виконують IP-адреси з дата-центрів: вони дешеві, швидкі та доступні у великих обсягах. Для роботи з великими обсягами даних вам потрібні IP-адреси з дата-центрів, призначені саме для збору великих обсягів даних, а не кілька спільних адрес, які вичерпуються за один день. Проблема в тому, що їх легко виявити. За даними TorchProxies (2026), проксі-сервери з дата-центрів досягають успішності від 60 до 90 відсотків на незахищених цілях, а потім цей показник падає до 20–40 відсотків за умови використання систем управління ботами Cloudflare або Akamai.

Зустрічайте Ranktracker

Універсальна платформа для ефективного SEO

За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO

Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!

Створіть безкоштовний обліковий запис

Або Увійдіть, використовуючи свої облікові дані

Розрахунок простий: якщо сайт витримує близько 10 запитів на IP-адресу за хвилину, а вам потрібно 6 000, то це мінімум 600 «чистих» IP-адрес, плюс запас на ті, що потрапляють під блокування.

Логіка регулювання темпу запитів та ротації

Далі йдеться про те, як швидко ви дієте. Ротація визначає, яка IP-адреса приймає кожен запит; регулювання темпу визначає інтервал між ними.

Request pacing and rotation logic

Ротація для кожного запиту надає кожному виклику нову IP-адресу, що добре підходить для безстатевих операцій, таких як окремі сторінки продуктів. «Стікі-сесії» зберігають одну IP-адресу протягом серії пов’язаних запитів; це потрібно, коли сайт відстежує сесію, наприклад, під час оформлення замовлення.

Саме від темпу залежить, чи вдасться уникнути блокування під час скрейпінгу, чи ви потрапите прямо в нього. Рандомізуйте затримку між запитами, оскільки фіксований інтервал у 200 мс сам по собі є сигналом про бота. Встановіть обмеження швидкості на кожну IP-адресу та додайте експоненціальне відступання, щоб помилки змушували вас сповільнюватися, а не прориватися вперед. На діаграмі вище показано, чому: рівень блокування залишається близьким до нуля, доки ви не перевищите поріг толерантності цілі, після чого різко зростає. Посібник Ranktracker із веб-скрейпінгу для SEO-інструментів показує, як саме така регуляція швидкості забезпечує точність інструменту відстеження позицій.

Заголовки та відбитки

Наостанок — про те, як ви виглядаєте. Навіть чисті IP-адреси з розумним темпом все одно виявляються, якщо самі запити явно вказують на використання скрипту. Кожен запит містить заголовки та відбиток TLS, і система виявлення порівнює їх із даними реального браузера.

Почніть з User-Agent, але не зупиняйтеся на цьому. Справжній браузер надсилає відповідний набір заголовків Accept, Accept-Language та Accept-Encoding у послідовному порядку, а запит, який їх пропускає або порушує цей порядок, виділяється. В основі лежить TLS-рукостискання, зведене до відбитка JA3. Клієнт на Python і Chrome обмінюються даними по-різному, навіть якщо їхні видимі заголовки збігаються, тому потужні системи захисту від ботів аналізують цей обмін даними, щоб виявити скрепери, які лише імітують зовнішні ознаки. Зробіть так, щоб кожен запит від початку до кінця виглядав як запит браузера.

Робота з CAPTCHA та м’якими блокуваннями

Не кожне блокування подає явні сигнали. Жорстке блокування очевидне: екран CAPTCHA або код 403. М’яке блокування приховане. Сайт повертає код 200, але тіло запиту обмежується, розріджується або наповнюється неправильними даними, призначеними для псування вашого набору даних без вашого відома.

Виявлення — це першочергове завдання. Позначайте відповіді, які видаються підозріло короткими або ідентичними на сторінках, що мають відрізнятися, і розглядайте їх як помилки, навіть якщо статус вказує на успіх. Неякісні вхідні дані псують усе, що на них побудовано, тому перевірка якості даних має таке ж значення, як і доступ. Посібник Ranktracker із точного відстеження позицій показує, як зашумлені вхідні дані псують цифри, які ви подаєте у звітах.

Зустрічайте Ranktracker

Універсальна платформа для ефективного SEO

За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO

Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!

Створіть безкоштовний обліковий запис

Або Увійдіть, використовуючи свої облікові дані

Коли з’являються CAPTCHA, існують сервіси для їх розгадування, але дешевше вирішити проблему на випередження: уповільніть швидкість запитів, частіше змінюйте параметри, очистіть «відбиток», і ви перестанете отримувати ці виклики.

Коли переходити на резиденційний трафік

Іноді сам рівень IP-адрес є обмежуючим фактором. Коли система управління ботами продовжує блокувати ваш пул дата-центру, незалежно від того, наскільки добре ви регулюєте інтенсивність та маскуєте трафік, це сигнал до переходу на вищий рівень.

Зустрічайте Ranktracker

Універсальна платформа для ефективного SEO

За кожним успішним бізнесом стоїть потужна SEO-кампанія. Але з незліченною кількістю інструментів і методів оптимізації на вибір може бути важко зрозуміти, з чого почати. Що ж, не бійтеся, адже у мене є те, що вам допоможе. Представляємо вам універсальну платформу Ranktracker для ефективного SEO

Ми нарешті зробили реєстрацію на Ranktracker абсолютно безкоштовною!

Створіть безкоштовний обліковий запис

Або Увійдіть, використовуючи свої облікові дані

Резидентні IP-адреси походять від реальних домашніх пристроїв, тому вони користуються довірою, якої діапазони дата-центрів ніколи не заслужать. Для стійких цілей перехід на ротаційні резидентні IP-адреси забезпечує трафік, який сприймається як звичайні домашні користувачі, що дозволяє обійти фільтри, які відкидають адреси дата-центрів одразу ж.

Ціною цього є швидкість і гроші. За даними ProxyWing, проксі-сервери дата-центрів працюють у 3–10 разів швидше: приблизно менше 200 мс проти 500 мс–2 секунд для резидентних. При мільйонах запитів це дає значну різницю, тому використовуйте багаторівневий підхід: залиште дата-центр як стандартний варіант і перенаправляйте на резидентні адреси лише заблоковані запити.

When to escalate to residential

Результати пошуку — класичний приклад. Якщо ви збираєте дані з SERP для такого інструменту, як SERP Checker від Ranktracker, найскладніші сторінки часто змушують вас переходити на проксі-сервери з домашніх мереж.

Проведіть тестування на одній цільовій сторінці, перш ніж розширювати масштаб

Перш ніж запускати скрейпер на весь список цілей, протестуйте його на одному захищеному сайті та стежте за кодами відповіді. Почніть з невеликого пулу проксі-серверів у дата-центрі, дотримуйтесь обережної швидкості, потім збільшуйте частоту запитів, доки не з’являться блокування, і поверніться до останнього рівня, на якому все працювало без проблем. Це число є вашим верхнім обмеженням на одну IP-адресу, і воно визначає розмір пулу для всього завдання. Налаштуйте проксі-сервери для веб-скрейпінгу та швидкість запитів правильно на одному сайті, і така сама конфігурація працюватиме на решті.

Поширені запитання

Скільки проксі-серверів потрібно для веб-скрейпінгу у великих обсягах?

Це залежить від толерантності цільового ресурсу та вашої пропускної здатності. Визначте, скільки запитів на хвилину витримує одна IP-адреса, перш ніж її позначать як підозрілу, розділіть вашу цільову швидкість на це число, а потім додайте запас. Потрібно 6 000 запитів на хвилину для сайту, який витримує 10 запитів на IP-адресу? Це понад 600 «чистих» IP-адрес, а не кілька, які працюють до зносу.

Що краще для веб-скрейпінгу: проксі з дата-центрів чи резидентні?

Однозначної переваги немає. Проксі з дата-центрів швидші та дешевші й добре справляються з незахищеними сайтами. Резидентні проксі повільніші та дорожчі, але витримують жорсткі заходи проти ботів. Більшість конвеєрів використовують обидва типи, за замовчуванням — проксі з дата-центрів, і переходять на резидентні лише тоді, коли блокування змушує це зробити.

Чому мене все одно блокують навіть із проксі?

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

Чи дозволено збирати публічні дані?

Це «сіра зона» законодавства, яка залежить від вашої юрисдикції та умов надання послуг сайту. Дотримуйтеся загальнодоступних даних, дотримуйтесь файлу robots.txt, де це можливо, не торкайтеся особистих даних і зверніться за юридичною консультацією перед будь-яким великим комерційним збором даних.

Почніть користуватися Ranktracker... Безкоштовно!

Дізнайтеся, що стримує ваш сайт від ранжування.

Створіть безкоштовний обліковий запис

Або Увійдіть, використовуючи свої облікові дані

Different views of Ranktracker app