Перейти к содержимому

Как настроить парсинг сайтов для мониторинга цен: схема и чек-лист рисков

Марина Погодина

7минут чтения

Смена менеджера у конкурента, и ваши клиенты два месяца видели цены ниже ваших, пока вы узнали об этом из оттока.

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

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

Спрос на тему устойчивый: на 01.10.2026 в поиске Дзена по запросу "парсинг сайтов" нашлось 20 материалов, охват набрали 5, у самого читаемого 25754 просмотра при дочитываниях. Цифры скромные, и это как раз повод: материала мало, а задача у рынка вечная.

Из чего состоит парсинг цен

Внутри любого парсера одна и та же последовательность, и понимание её важнее выбора языка.

Сначала вы описываете, какие страницы обходить и по какому расписанию, потом скрипт загружает HTML, потом извлекает цену по селектору или шаблону в разметке, потом проверяет и записывает результат, и только в конце что-то кому-то сообщает.

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

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

Скрипт пишут на Python с библиотеками запросов и разбора HTML, это стандарт индустрии. Отказ от обхода руками важен по причине усталости: ручная выгрузка делается до первого отпуска того, кто её делал, дальше таблица тихо стареет.

Расписание и вежливость к источнику

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

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

Журнал это ваша страховка. Без него вы не отличите "цена не менялась" от "страница приходила пустая, и скрипт записывал старое значение". Разницу между этими двумя состояниями не видит никто, пока однажды не выяснится, что две недели решений принимались по протухшим данным.

Правовая граница: что можно, что нет

Развилка простая, если смотреть на два условия подряд. Первое: данные открыты для любого посетителя или лежат за логином и закрыты от индексации в robots.txt. Второе: есть ли в данных персональная информация.

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

Схема-развилка: первый вопрос, данные открыты для всех или лежат за логином. Второй вопрос, есть ли в данных персональная информация. Открытые неперсональные данные собираем, открытые персональные обрабатываем по правилам о персональных данных, данные за логином и закрытые от индексации не трогаем без согласия владельца.
Ответ развивается от двух условий: открыты ли данные и есть ли в них персональная информация. Публичные цены с чужих витрин собирают свободно, за персональные данные наступает ответственность по закону.

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

Как понять, что вас начали блокировать

Блокировка приходит в три стадии, и каждая видна в журнале.

Норма против блокировки: Работает нормально: Страницы отдают код 200, Цены меняются хотя бы иногда, В ответе есть разметка товара; Вас блокируют: Капча или код ошибки в ответе, Пустая страница без разметки, Цена стоит…. Иллюстрация к разделу Как понять, что вас начали блокировать, вид: две колонки
Иллюстрация: Блокировка приходит в три стадии: капча или код ошибки, пустая страница и код 200 с устаревшей ценой.

Сначала капча или код ошибки в ответе, потом пустая страница без разметки товара, и самая коварная стадия это код 200 с устаревшей ценой: сайт узнаёт обход и отдаёт прикрытые данные, ваш скрипт доволен, таблица мертва.

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

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

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

Куда приходят алерты

Скрипт пишет в чат бота, и команда видит изменение цены сразу по мере поступления событий. Для Telegram это официальный бот-интерфейс, для MAX своя документация для разработчиков на dev.max.ru: там описано, как создать бота и отправлять сообщения через официальный интерфейс.

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

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

Чек-лист рисков перед запуском парсинга

Этот чек-лист я прогоняю перед любым обходом, и он одинаково работает для одного сайта и для двадцати. Каждый пункт проверяемый: на него можно ответить "да" или "нет", и каждое "нет" означает, что запуск откладывается.

Что проверить до первого обхода: Правовая: открытые данные, без персональных данных, Запасной источник цен на случай блокировки, Журнал всех запросов с датой и страницей, Алерт при ошибке, а не тишина в таблице…. Иллюстрация к разделу Чек-лист рисков перед запуском парсинга, вид: чек-лист
Иллюстрация: Чек-лист рисков закрывает правовую, техническую и операционную стороны до запуска парсинга.
  1. Все источники открыты без логина, и в их robots.txt нет запрета на обход нужных страниц: проверено сегодня, не "как помню".
  2. В собираемых данных нет персональной информации: отзывы с именами, профили продавцов и контакты в обход не попадают.
  3. Условия использования каждого источника прочитаны целиком, и прямого запрета на автоматический сбор нет.
  4. Расписания по разным сайтам разнесены по времени, между запросами к одному сайту стоит пауза.
  5. Каждый запрос пишется в журнал: дата, адрес, код ответа, найденная цена.
  6. Цена, не менявшаяся дольше типичного срока для этого товара, помечается в отчёте так же, как ошибка запроса.
  7. У каждого критичного источника есть запасной: второй сайт с той же ценой или ручная проверка по расписанию.
  8. Ошибка любого шага отправляет алерт, тишину скрипт не умеет: проверено на специально сломанном селекторе.
  9. Селекторы цен вынесены в отдельный конфиг, и смена вёрстки лечится правкой одной строки без пересборки скрипта.
  10. Первый обход запускается вручную с полным журналом, и только после чистого прогона ставится в расписание.

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

Частые вопросы про парсинг цен

Законно ли делать парсинг сайтов для мониторинга цен?

Публичные цены с открытых витрин собирать допустимо, потому что это обезличенная информация, доступная любому посетителю сайта. Ограничения начинаются там, где данные лежат за логином, закрыты от индексации или содержат персональную информацию: такие страницы без согласия владельца не обходят, и никакая бизнес-цель этого не перекрывает.

Как часто нужно обходить страницы конкурентов?

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

Почему цены в таблице не меняются неделями?

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

Куда отправлять алерты об изменении цен?

В чат бота, который команда и так читает: скрипт пишет сообщение с адресом страницы, старой и новой ценой. Для Telegram и MAX есть официальные интерфейсы для ботов, и отправка через них занимает в скрипте несколько строк.

Что проверить прямо сегодня

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

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

Что вы мониторите сейчас: цены конкурентов, наличие товара или ставки подрядчиков? Напишите, и я разберу схему под ваш случай.

Новые разборы выходят в моём канале: t.me/promaren.

Автоматизация воронок продаж

Лид от комментария до оплаты без ручного менеджера, запуск за 10–14 дней

Чем подкреплено

Первоисточники

Вопросы

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

Законно ли делать парсинг сайтов для мониторинга цен?

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

Как часто нужно обходить страницы конкурентов?

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

Почему цены в таблице не меняются неделями?

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

Куда отправлять алерты об изменении цен?

В чат бота, который команда и так читает: скрипт пишет сообщение с адресом страницы, старой и новой ценой. Для Telegram и MAX есть официальные интерфейсы для ботов, и отправка через них занимает в скрипте несколько строк.

Кто делает
Марина Погодина, основатель PROMAREN

Марина Погодина, основатель PROMAREN

17 лет в ИТ и управлении технологическими рисками, из них 14 лет в аудите ИТ и внутреннем контроле. Более 60 аудитов ИТ и информационной безопасности.

Об автореКанал в MAX (откроется в новой вкладке)

Похожие материалы

Надпись: «Автоматизация. Что автоматизировать первым?».
Автоматизация бизнеса: процессы, продажи, интеграции с 1С и CRM

Как отобрать задачи под автоматизацию бизнес-процессов: схема оценки и таблица

Показываю, как отсеять громкие заявки и найти процессы, которые стоит автоматизировать первыми. Отдаю таблицу оценки для работы с командой.

Читать
Надпись: «Где утекают ваши сделки».
Автоматизация бизнеса: процессы, продажи, интеграции с 1С и CRM

Как разложить воронку продаж на этапы и найти потери: схема и таблица

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

Читать
A massive, heavy steel bank vault door installed on a flimsy, dented cardboard moving box. Надпись: «Автоматизация бизнеса. Скрипты дороже живых людей».
Автоматизация бизнеса: процессы, продажи, интеграции с 1С и CRM

Как начать автоматизацию бизнеса: экономика первых задач и таблица расчёта

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

Читать