Блог
Парсинг

Парсер конкурентов: как запустить мониторинг без хаоса

Как спроектировать парсер конкурентов: источники, поля, частота, антидубли, правила площадок, отчёты, AI-фильтр и первый MVP.

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

Иначе получается папка CSV, которую один раз открыли, испугались и больше не трогали.

Что должен делать парсер

  • как выбрать источники для парсинга
  • какие поля нужны в первой версии
  • как не утонуть в дублях
  • где AI помогает, а где мешает

Начните с решения, а не с сайта

Плохая постановка: “спарсить конкурентов”.

Рабочая постановка: “каждый день находить новые сайты конкурентов по списку направлений, проверять релевантность, вытаскивать контакты и складывать в CRM”.

Во втором варианте видно:

  • какие запросы запускать
  • какой результат считается полезным
  • что делать с дублями
  • где нужен AI-фильтр
  • куда отдавать итог

В кейсе МПК: AI-поиск конкурентов для CRM система брала поисковые запросы из Гугл-таблицы, находила сайты, проверяла их через AI, обогащала реквизитами и передавала результат в CRM. Там важен был полный маршрут, а не один парсер ради парсера.

Источники лучше разделить по типам

У парсера могут быть разные источники:

  • поисковая выдача
  • каталоги
  • маркетплейсы
  • сайты конкурентов
  • открытые профили
  • Телеграм-каналы
  • новостные источники
  • таблицы заказчика

У каждого источника свои риски. Где-то есть API, где-то нужен браузер, где-то сайт быстро меняет верстку, где-то парсинг может нарушать правила площадки. Поэтому сначала нужен безопасный precheck: открыть источник, вытащить один реальный элемент, понять блокировки и формат.

Один статус-код 200 не доказывает, что источник читается. Нужно увидеть реальную запись: товар, цену, карточку, ссылку, дату или текст.

Минимальные поля для мониторинга

Для первого MVP обычно хватает таких полей:

ПолеЗачем нужно
source_urlгде нашли запись
titleкак называется объект
domainосновной сайт
snippetкороткий фрагмент
found_atкогда нашли
queryпо какому запросу
relevance_scoreнасколько подходит
statusновый, дубль, отклонён, передан

Если нужны контакты, добавляются email, телефон, соцсети, реквизиты. Если мониторим цены, нужны цена, валюта, дата обновления, товарный id и ссылка на карточку.

Лучше начать с малого набора полей, но стабильно. Широкая таблица с пустыми колонками быстро ломает доверие к системе.

Дубли решают качество отчёта

Без дедупа мониторинг быстро превращается в шум.

Дубли бывают разными:

  • один домен найден по разным запросам
  • одна компания имеет несколько страниц
  • карточка переехала на другой URL
  • сайт отдаёт параметры в ссылке
  • данные пришли из двух источников

Нужно выбрать ключ дубля. Для сайтов это часто домен. Для товаров - артикул или нормализованный URL. Для компаний - ИНН, домен или связка названия и города.

Если ключ выбран плохо, парсер или пропустит новые записи, или будет присылать одно и то же каждый день.

Как выглядит полезный отчёт

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

Хороший отчёт отвечает на вопросы:

  • что найдено нового
  • почему это похоже на конкурента
  • какой источник дал запись
  • какие поля удалось подтвердить
  • какие данные не найдены
  • что уже было в базе
  • что нужно передать менеджеру

Если после парсинга человек всё равно вручную открывает каждую ссылку и решает с нуля, автоматизация сделала только половину работы. Лучше сразу добавить статус, причину попадания и короткий комментарий. Тогда отчёт можно разбирать быстрее.

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

Где помогает AI

AI полезен не для самого скачивания страницы, а для смысловой фильтрации.

Он может:

  • понять, релевантен ли сайт
  • кратко описать компанию
  • выделить услугу
  • классифицировать конкурента
  • объяснить, почему запись попала в отчёт

Но AI не должен выдумывать данные. Если на сайте нет цены, он не должен “примерно оценивать”. Если не найден телефон, нужно писать, что телефон не найден.

В кейсе Freelance Radar AI помогал фильтровать поток заказов и отсекать мусор. Для конкурентного мониторинга подход похожий: сначала парсер собирает кандидатов, потом AI помогает отделить полезное от шума.

Как часто запускать парсер

Частота зависит от задачи.

  • цены и наличие: чаще, иногда несколько раз в день
  • новые конкуренты: раз в день или неделю
  • новости: по расписанию или каждые несколько часов
  • редкие каталоги: раз в неделю или месяц

Не стоит ставить частый запуск без причины. Это увеличивает риск блокировок, нагрузку и стоимость. Лучше начать с разумной частоты и смотреть, как быстро меняются данные.

Как не упереться в правила площадок

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

На старте полезно зафиксировать:

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

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

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

Вывод

Парсер конкурентов должен быть не скриптом “собери всё”, а понятным маршрутом: источник, поля, дедуп, оценка, хранение, отчёт и действие.

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

Ещё статьи

Можно разобрать вашу задачу так же предметно

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