16.09.2026 · блог

Как парсить сайт с защитой от ботов: рабочие методы

Защита от ботов срабатывает не потому, что сайт «узнал парсер», а потому что запрос не похож на запрос человека — по адресу, по отпечатку клиента, по темпу или по маршруту. Разберём по слоям: что именно ловит, что помогает, и почему сбор данных ломается не в первый день, а на третьей неделе.

Сначала поймите, какой слой вас блокирует

Антибот — это не один рубильник, а несколько независимых проверок. Скрипт может проходить три из них и падать на четвёртой, поэтому «добавить User-Agent» обычно ничего не меняет. Слои, которые встречаются чаще всего:

Диагностика начинается с того, что сайт реально вернул. Код 403 и мгновенная капча — чаще всего адрес и отпечаток. Капча после десятков страниц — темп. Страница отдалась, а нужных данных в ней нет — контент подгружается скриптом. Отдельный случай: данные есть, но неправильные — часть сайтов подменяет содержимое вместо блокировки, и это хуже явного бана, потому что тихо портит выгрузку.

Что помогает: настоящий браузер и местный адрес

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

Дальше всё решает аккуратность, а не хитрость:

И перед всем этим стоит проверить официальный путь: открытый API, партнёрская выгрузка, фид, карта сайта. Если он есть, он дешевле и стабильнее любого обхода. Чего мы не делаем: не обходим авторизацию, не собираем персональные данные и не создаём нагрузку, от которой чужому сайту плохо.

Сбор ломается на третьей неделе, а не в первый день

Одноразовый скрипт и постоянный сбор — разные задачи. Через неделю-другую меняется вёрстка, обновляется антибот, появляется капча там, где её не было. Скрипт при этом не падает с ошибкой — он возвращает пустоту или мусор, и это замечают, когда по данным уже приняли решение.

Поэтому мы ставим сбор на свой сервер по расписанию и добавляем проверки:

Второе, что даёт постоянный сбор, — история. Одна выгрузка отвечает на вопрос «сколько стоит сейчас», история отвечает на вопрос «кто, когда и на сколько двигал цену». У нас накоплено около 3,8 ГБ истории цен, и именно она делает мониторинг конкурентов полезным, а не просто снимком дня.

Данные должны попадать туда, где с ними работают

Выгрузка, которую надо открыть руками, обычно не открывается. Собранное имеет смысл сразу класть туда, где идёт работа: таблица, 1С, CRM, витрина на сайте, бот с уведомлением при изменении цены или появлении позиции.

Техническая часть обхода защиты — меньшая половина задачи. Большая — сделать так, чтобы данные приходили каждый день, в одном формате и в нужное место.

Нужно так же под вашу задачу?

Соберём под ваш случай и покажем на ваших данных.

Сбор данных →