Зачем бизнесу мониторинг и где граница

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

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

Что такое мониторинг

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

Программу, которая открывает страницу и достаёт из неё нужные кусочки, называют сборщиком или парсером (от английского parse, разбирать). Сам сбор данных со страниц называют парсингом. Ценность для заказчика не в том, что программа умеет читать страницы. Ценность в том, что владелец перестаёт пропускать важное и не тратит на это утро.

Что получит «Кодиум»

Сквозной кейс паттерна такой. Раз в сутки, в 8:00 по Москве, программа на том же сервере, где живёт бот, открывает по одной странице курса Python у пяти школ: Skillbox, Нетология, Яндекс Практикум, Хекслет, Stepik. Со страницы берёт название, цену, платёж в месяц, длительность и ближайший старт. Сохраняет снимок дня. Сравнивает со вчерашним. Если что-то поменялось, языковая модель через CloseRouter пишет пару строк, что это значит для «Кодиума», и сводка уходит владельцу в Telegram тем же ботом. Если ничего не поменялось, приходит короткое «Конкуренты: без изменений».

Схема утренней сводки: часы «8:00 МСК» → пять страниц курсов (Skillbox, Нетология, Яндекс Практикум, Хекслет, Stepik) → «снимок дня в базе SQLite» → «сравнение со вчера (считает код)» → «есть изменения?»: нет → «Конкуренты: без изменений»; да → «модель пишет вывод с цитатой со страницы»; оба пути ведут в Telegram. Ниже терминал сервера 10.10.2026: таймер kodium-monitor на 05:00 UTC и четыре строки журнала «снимок сохранён» (Stepik, Хекслет, Яндекс Практикум, Skillbox), адрес и имя сервера скрыты.

Это прогнано руками в курсе. И главное, что показал прогон: сборщик ошибается уверенно. Он может подставить телефон вместо даты старта и отчитаться «всё проверено». Поэтому половина паттерна будет про то, как проверять собранное. Сводка с ложными цифрами хуже, чем никакой: владелец примет решение по неправде.

Где граница: что важно знать

Это не юридическая консультация. Для заказчика с серьёзным объёмом сбора нужен юрист. Ниже то, что стоит знать, чтобы не наделать ошибок на старте.

Отдельного закона «о парсинге» в России нет. Риски идут от трёх вещей.

  • Право на базу данных. Статья 1334 ГК РФ защищает того, кто собрал базу: нельзя без разрешения извлекать из неё материалы и использовать их дальше. Где проходит граница «существенной части», суды пока не определили. Поэтому правило курса такое: берём несколько страниц в сутки, а не выкачиваем каталог сайта.
  • Персональные данные. 152-ФЗ: если данные лежат в открытом доступе, это ещё не разрешение их обрабатывать (для данных, которые человек сам открыл для всех, есть отдельные условия в статье 10.1). Имена, телефоны, отзывы с подписями мы не собираем и не храним.
  • Условия сайта. Пользовательское соглашение сайта считается договором с тобой. Если там запрещён автоматический сбор, это аргумент против тебя.

Самое известное дело в этой теме: «ВКонтакте» против компании «Дабл» (А40-18827/2017). По материалам pravo.ru, Суд по интеллектуальным правам в 2018 году сказал: если база служит основным ресурсом сайта и в ней больше 10 000 пользователей, затраты на неё предполагаются, а спорить приходится о том, существенную ли часть извлекли. Сама статья 1334 называет такой же порог: не меньше десяти тысяч элементов. Дело ходило по судам несколько лет (новость о возврате на пересмотр) и в 2022 году закончилось мировым соглашением, так что окончательной позиции суда по существу нет. Общий обзор этики сбора и robots.txt на примерах зарубежных дел есть в статье на сайте: обзор этики и robots.txt.

robots.txt: правила вежливости сайта

У большинства сайтов есть файл robots.txt по адресу https://<сайт>/robots.txt. Это табличка на двери: «сюда роботам можно, сюда нельзя». Закон его не требует соблюдать, но если ты табличку нарушил или обошёл защиту сайта, суды и площадки читают это против тебя. В курсе правило простое: берём только то, что robots.txt разрешает. Если сайт в ответ показывает ошибку 403, капчу или вопрос «вы робот?», это защита сайта: не обходим её, а меняем источник или спрашиваем заказчика.

Строка Disallow: /profile/ значит «в раздел /profile/ не ходить». Звёздочка * означает «любые символы». Вот что нашлось в robots.txt пяти школ 10.10.2026:

  • Skillbox: страницы курсов разрешены; закрыты служебные разделы, вход, личный кабинет, поиск.
  • Нетология: страницы программ разрешены; закрыты вход, PDF программ, адреса с ref=.
  • Яндекс Практикум: в его robots.txt закрыт /*?*, то есть любой адрес со знаком вопроса. Страница курса без «?» разрешена, та же страница с меткой вроде ?utm=1 уже нет. Закрыт и личный кабинет /profile/.
  • Хекслет: страницы программ разрешены, а страница с ценами /pricing закрыта.
  • Stepik: страницы курсов /course/<номер>/promo разрешены, а отзывы курсов и оплата закрыты.

Посмотри на Хекслет и Stepik внимательно: цены и отзывы, самое интересное для мониторинга, там как раз закрыты. Значит, их не берём. Хочется знать, что пишут ученики конкурентов? Есть открытые ленты их Telegram-каналов, так делали в треке 3: урок 4.2 трека 3 про анализ конкурентов.

Правила курса для сбора

  • только открытые страницы без входа на сайт;
  • только то, что разрешает robots.txt;
  • свой User-Agent (подпись программы) с контактом владельца, чтобы сайт видел, кто к нему пришёл;
  • пауза несколько секунд между запросами, несколько страниц раз в сутки;
  • никаких персональных данных.

Под эти правила кейс «Кодиума» подходит: пять запросов в сутки к разрешённым страницам, без входа и обхода защиты, без персональных данных.

Кейс из жизни: заказчик просит «собирать отзывы о нас со всех площадок с именами, чтобы отвечать каждому». Имена это персональные данные, а отзывы на части площадок закрыты в robots.txt. Предложи вместо этого сводку по открытым лентам без имён: что хвалят, на что жалуются, с цитатой.

Контрольный вопрос. Ты открыл robots.txt Яндекс Практикума и видишь Disallow: /*?*. Какой адрес можно брать в сборщик?

ААдрес страницы курса с меткой ?utm=1 в конце
БАдрес страницы курса без знака вопроса
ВАдрес личного кабинета /profile/
ГЛюбой, robots.txt не закон

Подсказка: Есть ли в адресе знак вопроса и не закрыт ли раздел целиком?

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Заказчик просит собирать отзывы о конкурентах вместе с именами авторов. Как поступишь?

АСоберу всё, раз отзывы открыты
БСоберу, но буду хранить имена в зашифрованном виде
ВПредложу сводку по открытым источникам без имён и проверю robots.txt каждого
ГСоберу только с тех сайтов, где нет robots.txt

Подсказка: Что говорит 152-ФЗ про «общедоступные» данные?

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Что продаёшь заказчику в мониторинге в первую очередь?

АПрограмму, которая умеет читать страницы
ББазу всех данных конкурента
ВДоступ к закрытым разделам сайтов
ГВремя владельца и то, что он больше не пропускает важные изменения

Подсказка: Вспомни историю со скидкой у соседней школы.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Задание. МИССИЯ «Карта источников». 1. Возьми своего заказчика (тот же, что в П1–П2) и выпиши 3–5 его конкурентов или источников, которые ему важно видеть каждый день. 2. Для каждого найди одну открытую страницу без входа (курс, товар, прайс). 3. Открой robots.txt каждого сайта в браузере. Выпиши строки Disallow, которые касаются твоей страницы, и реши: можно или нельзя. Особое внимание строкам со звёздочкой и знаком вопроса. 4. Отметь, есть ли на странице персональные данные (имена, телефоны, отзывы с подписями). Если есть, напиши, что из неё не берёшь. Принято, если: приложена таблица «источник → адрес страницы → строки robots.txt → можно/нельзя → что не берём» минимум на 3 источника и снимок экрана robots.txt хотя бы одного сайта.

Подсказка: Если строка Disallow со звёздочкой подходит к твоему адресу, страница выпадает.

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Читайте также: Мониторинг цен конкурентов с нейросетью: как сделать сводку, которой можно верить

Что дальше

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

Итог:
• мониторинг экономит владельцу время и ловит изменения у конкурентов;
• риски сбора: база данных (ст. 1334 ГК РФ), персональные данные (152-ФЗ), условия сайта;
• robots.txt читаем до сбора, адреса со звёздочкой и «?» проверяем отдельно;
• у «Кодиума» пять разрешённых страниц раз в сутки без имён и без входа.

← Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева