Парсинг сайтів із захистом від ботів

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

Коли потрібен саме індивідуальний парсер

  • Готовий сервіс повертає порожній результат або сторінку з перевіркою браузера.
  • Дані з’являються тільки після прокрутки або натискання, тобто підвантажуються скриптом.
  • Сайт починає віддавати помилки після кількох десятків запитів.
  • Потрібні дані з особистого кабінету або з-за авторизації.

Як я працюю

  • Спочатку дивлюсь сайт і кажу прямо, реально це чи ні. Якщо задача нерозв’язна, скажу одразу, а не після оплати.
  • Емуляція реального браузера там, де без неї не обійтись: Playwright, Selenium.
  • Обхід Cloudflare, reCAPTCHA і hCaptcha спеціалізованими методами.
  • Розумна швидкість запитів, щоб не створювати навантаження і не потрапляти під блокування.
  • Результат у вашому форматі: Excel, CSV, JSON, база даних або одразу в CMS.

Як влаштований збір із захищеного сайту

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

Збір даних із захищеного сайту
  1. Аналіз сайту. Дивлюся, який захист стоїть, звідки сайт бере дані і чи є внутрішній API. Часто дані зручніше і надійніше брати з API, ніж з верстки.
  2. Справжній браузер там, де він потрібен. Браузер відкриває сайт і проходить перевірку так само, як людина.
  3. Швидкі запити з отриманою сесією. Після проходження перевірки основний обсяг даних забирається легкими запитами. Це в рази швидше і менше навантажує сайт.
  4. Спокійний темп. Паузи, повтори, обмеження одночасних з’єднань і пул адрес. Мета – не обійти все за хвилину, а стабільно працювати місяцями.
  5. Перевірка результату. Якщо даних прийшло підозріло мало, збір не віддає їх мовчки, а сповіщає про проблему.

Які сайти найчастіше потребують такого підходу

  • великі інтернет-магазини і маркетплейси, зокрема європейські і американські;
  • майданчики оголошень: авто, нерухомість, техніка;
  • аукціони і сайти з продажу авто на експорт;
  • агрегатори цін, страхування, медичних послуг;
  • B2B-кабінети постачальників з авторизацією.

Що ви отримуєте

Дані у вашому форматі і за вашим розкладом: Excel або Google Таблиця, CSV, XML-фід для маркетплейсу, запис у вашу базу або CRM, повідомлення в Telegram. Для регулярних задач – щоденний чи щотижневий збір з історією змін.

Звіт після кожного збору

Чому такі парсери потребують підтримки

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

Чому готові сервіси парсингу тут не працюють

Готові сервіси і розширення для браузера розраховані на прості сайти: відкрив сторінку, забрав таблицю. На захищеному сайті вони впираються в одне з трьох:

  • замість даних отримують сторінку перевірки браузера або капчу;
  • сторінка порожня, бо вміст підвантажується скриптом уже після відкриття;
  • після кількох десятків запитів сайт починає віддавати помилки або блокує адресу.

Індивідуальний парсер пишеться під конкретний сайт: враховує його захист, структуру і ліміти. Тому він працює там, де готовий сервіс повертає порожній результат, і продовжує працювати після змін на сайті, бо його підтримують.

Юридичні межі

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

Як почати

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

Реальний кейс

Парсинг сайту, закритого Cloudflare. Задача була нетривіальна, парсер працює стабільно, співпраця триває на постійній основі.

Результат: стабільна робота без ручного втручання
★★★★★

Сайт із серйозним захистом, задача була нетривіальна. Зроблено чітко і вчасно, парсер працює стабільно. Співпрацю продовжуємо на постійній основі.

Парсинг сайту під захистом Cloudflare

Кейси на цю тему

Часті питання

Чи гарантуєте результат?+
Гарантую чесну оцінку до початку робіт. Подивлюсь сайт і скажу, чи вирішується задача і за скільки. Якщо захист непереборний розумними засобами, скажу про це, а не візьму гроші за спробу.
Що буде, коли сайт змінить захист?+
Сайти змінюються, це нормально. На щомісячній підтримці парсер оновлюється безкоштовно при змінах на стороні джерела.
Скільки коштує?+
Залежить від складності захисту. Проста разова задача - від $100, складніші проєкти оцінюю окремо. Точну цифру назву після того, як подивлюсь конкретний сайт.
З чого почати?+
З короткої безкоштовної консультації на 15-20 хвилин. Надішліть посилання - подивлюсь сайт і скажу, чи вирішується задача, скільки часу займе і скільки коштуватиме.
Почніть з безкоштовної консультації

Опишіть задачу - за 15-20 хвилин скажу, чи вона вирішується, яким шляхом і скільки орієнтовно коштуватиме. Без зобов'язань.

Обговорити задачу →