Практика: мониторинг для своего заказчика

В прогоне курса сводку «Кодиума» собрали за 7 заданий агенту: 70 минут его работы, 191 ход, около 0,23 $ в CloseRouter. Новую работу делали только два задания: сборка и выкладка на сервер. Остальные пять чинили то, что агент «проверил» и назвал верным. Теперь твоя очередь: свой заказчик, свои источники и та же привычка не верить отчёту «ложных данных нет», пока не сверил сам.

Чему научишься в этом уроке:
• выбрать источники для своего заказчика и проверить, что их можно читать;
• довести сборщик до таблицы «значение → фрагмент», которую ты сверил руками;
• выложить сводку на сервер с таймером и журналом модели;
• сдать комплект без секретов в снимках.

Выбери заказчика и источники

Лучше тот заказчик, для которого ты писал КП в уроке 4.6. Если его нет, возьми «Кодиум» и замени школы на другие. Источников 3–5, по одной странице на каждый. Перед тем как дать список агенту, пройди по нему с правилами из урока 4.1:

  • страница открыта без входа на сайт;
  • адрес разрешён robots.txt, проверка библиотекой, которая понимает символ * в правилах (protego). Стандартный urllib.robotparser в прогоне сказал «можно» для адресов, которые на самом деле запрещены;
  • в адресе нет «?», это не /pricing и не страница отзывов;
  • на странице нет данных людей, а если есть (имена в отзывах), ты их не сохраняешь;
  • один запрос на сайт раз в сутки, пауза 5–10 секунд между сайтами, свой User-Agent с контактом.

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

Таблица на пять колонок: «Источник», «Поле», «Значение», «Фрагмент страницы», «Сверил сам». Skillbox, цена курса — «нет в HTML», фрагмент пустой. Skillbox, платёж в месяц — 8 415 ₽, фрагмент «8 415 ₽/мес −45%», сверил «да». Stepik, старт — «нет в HTML», фрагмент «на странице только «Последнее обновление 16.05.2025»», сверил «да». Ниже подсказка: пустой фрагмент — значения нет, фрагмент без числа или из соседнего блока — повод сверить руками.

Чек-лист П3

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

  1. Список источников с отметкой robots по каждому адресу (protego, правила с *).
  2. Каждый адрес отвечает 200, в заголовке страницы есть то, что ты ищешь. Придуманных адресов нет.
  3. Таблица «значение → фрагмент» по всем источникам; фрагмент содержит само значение.
  4. Хотя бы одну страницу ты сверил вручную: открыл и нашёл каждое число в нужном блоке.
  5. Платёж в месяц и скидка хранятся отдельно от цены; рекламные фразы не стали длительностью; «последнее обновление» не стало стартом.
  6. Число тестов не уменьшилось ни после одного задания.
  7. Снимки по дням в SQLite; изменения считает код, модель только формулирует вывод с цитатой (как в уроке трека 3 о разборе отзывов).
  8. Модели в .env (MODEL_MAIN, MODEL_FALLBACK); в журнале после каждого ответа модель и usage. Подробности в уроке 4.4.
  9. httpx и httpcore на уровне WARNING, токенов в журнале нет.
  10. Служба и таймер на 8:00 по Москве (часы сервера в UTC), Persistent=true; list-timers показывает следующий запуск.
  11. Тест подменой: временно изменил значение в базе, сводка с изменением пришла, значение вернул назад.
  12. Сбой сбора или модели даёт пометку владельцу, а не тишину.

Ссылка на урок трека 3, где то же правило «считает код, модель формулирует»: «Разбор отзывов».

Как давать задания агенту

Первое задание бери из раздела «Задание шага 1 для своего заказчика» урока 4.3: подставь <заказчик>, <источники> и <что сравниваем>. Никогда не меняются: protego, паузы, User-Agent, без входа, «нет в HTML», таблица «значение → фрагмент», модели в .env, журнал модели и usage. Дальше работай короткими кругами: задание, тесты, настоящий сбор, твоя сверка. После каждого круга смотри на три вещи: число тестов, таблицу «значение → фрагмент», одну страницу глазами.

Когда агент пишет «все значения проверены», отвечай как в шаге 4 урока 4.3: не пиши «ложных данных нет», если сам не сверил каждое значение с фрагментом, покажи таблицу, чтобы я проверил.

Перед снимками закрой токен бота, ключ CloseRouter, адрес сервера и chat_id. Ключ в снимке журнала такой же секрет, как в .env.

Порядок работы

  1. Первый заход: заказчик, источники, проверка robots, что берём с каждой страницы.
  2. Второй: сборщик локально до честной таблицы «значение → фрагмент» и твоей сверки одной страницы.
  3. Третий: разбор моделью, повторы и запасная модель, журнал с usage.
  4. Четвёртый: выкладка на сервер, таймер, тест подменой, снимки для сдачи.
  5. Закладывай на всё 4–5 часов: только агент на «Кодиуме» работал 70 минут, а у тебя ещё свои источники и сверка.

Если не получилось

  • Адрес отдаёт 404 → агент его придумал; попроси найти ссылку в HTML каталога и проверить код 200 и заголовок.
  • Сайт отвечает 403, капчей или «вы робот?» → это защита сайта; не обходи её, смени источник или спроси заказчика.
  • Дата старта похожа на «8 800 …» → это телефон; дата только в формате даты, рядом не должно быть «телефон», «8 800», «+7».
  • Цена с ведущими нулями или подозрительно маленькая → скорее всего, платёж в месяц по акции; рядом «/мес»? Храни отдельным полем.
  • Длительность «2 месяца» → проверь фрагмент: в прогоне это была реклама «уже через 2 месяца сможете зарабатывать».
  • Старт совпадает с «Последнее обновление» → это дата правки страницы, а не старт курса.
  • Тестов стало меньше, зато все зелёные → агент удалил проверки; потребуй вернуть все и показать их число.
  • В журнале ответила не та модель → модели в .env и запись модели в журнал после каждого ответа (урок 4.4).
  • Сводка не пришла после теста подменой → проверь, что сравнение идёт по тому же полю, которое ты менял (в прогоне это monthly_payment).
  • У источника цена всегда «нет в HTML» → данные подгружает скрипт; так было у Хекслета и Практикума. Оставь честную пометку или замени источник.

Контрольный вопрос. Агент прислал таблицу и пишет: «Все значения проверены, ложных данных нет». Что делаешь дальше?

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

Подсказка: Вспомни, что нашла ручная сверка Skillbox в шаге 4 урока 4.3.

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

Контрольный вопрос. После очередного задания тесты зелёные, но их стало 9, а было 18. Что это значит?

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

Подсказка: Вспомни, что случилось с тестами после шага 4 урока 4.3 и как их вернули в шаге 5.

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

Контрольный вопрос. Какой снимок годится для сдачи?

АСодержимое .env, чтобы наставник проверил модели
БЖурнал целиком, вместе со строкой запроса к API бота
ВТаблица снимков с именами из отзывов
ГЖурнал с моделью и usage, токены и адрес сервера закрыты

Подсказка: Что из этого позволит постороннему пользоваться твоими ключами или узнать данные людей?

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

Задание. МИССИЯ «Мониторинг для своего заказчика». 1. Запиши заказчика и 3–5 источников; по каждому адресу отметь результат проверки robots (protego). 2. Собери сборщик с Claude Code до таблицы «значение → фрагмент» по всем источникам; сверь одну страницу вручную. 3. Подключи разбор моделью через CloseRouter: модели в .env, повторы, запасная модель, запись модели и usage в журнал. 4. Выложи на сервер со службой и таймером на 8:00 по Москве. 5. Сломай и почини: временно измени значение в базе, получи сводку с изменением, верни значение. Принято, если: приложен список источников с отметками robots; таблица «значение → фрагмент» и снимок страницы, которую ты сверил сам, с найденными числами; число тестов в начале и в конце; снимок сводки в Telegram с цитатой; снимок журнала с моделью и usage без токенов и адреса сервера; вывод list-timers по своему таймеру.

Подсказка: Сначала добейся честной таблицы на одном источнике, потом добавляй остальные.

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

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

Что дальше

П3 закрыт: у заказчика каждое утро сводка, которой можно верить, а у тебя подписка, за которую понятно, что ты делаешь. В П4 собираем мини-CRM: место, где заявки из бота и с сайта превращаются в сделки.

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

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

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