Бот отлова слотов: пропуска на границе с Китаем

Обновлено:
ML Нейросети1.8 месяца

Слоты для оформления пропусков на границе с Китаем разбираются за минуты, а госсайт не умеет уведомлять о новых интервалах — следить за расписанием приходится вручную. Эту боль мы закрыли Telegram-ботом, разработанным в партнёрстве с Orbyx: он круглосуточно мониторит государственный сайт, сам находит свободные слоты и мгновенно присылает уведомления подписчикам — тем, кто планирует поездки или возит грузы через границу. Ручной поиск больше не нужен: система на Python с парсером госсайта отслеживает изменения и отдаёт данные в удобном формате. От старта проекта до запуска — 1,8 месяца.

Бот отлова слотов: пропуска на границе с Китаем

Задача

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

Для людей и компаний, которые ведут бизнес с Китаем или планируют поездки, это не мелкое неудобство. Упущенный слот — это сдвинутая поставка, простой транспорта, перенесённая командировка. При этом сам госсайт не предлагает ни подписки, ни уведомлений: единственный штатный способ узнать о свободном интервале — зайти и посмотреть.

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

Ручной мониторинг съедает время

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

Слоты исчезают за минуты

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

Госсайт не уведомляет

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

Что делает система

Парсер государственного сайта

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

Планировщик проверок

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

Обнаружение новых слотов

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

Мгновенные уведомления в Telegram

Как только в расписании появляется свободный слот, бот отправляет подписчикам сообщение через Telegram Bot API. Уведомление приходит в момент обнаружения — без промежуточных сервисов и почтовых задержек. В сообщении сразу видны дата и интервал, так что пользователь может немедленно перейти к оформлению пропуска на госсайте.

Интерфейс бота для пользователей

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

Устойчивость к сбоям источника

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

Журналирование и контроль

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

Технологический стек

Python

Основной язык проекта. Для задач парсинга и автоматизации у Python самая зрелая экосистема: библиотеки для HTTP-запросов и разбора HTML, планировщики задач, готовые обвязки для Telegram. Это позволило собрать рабочий прототип за считанные дни и довести систему до продакшена за 1,8 месяца силами компактной команды полного цикла.

Telegram Bot API

Канал доставки уведомлений и интерфейс всей системы. Telegram уже установлен у целевой аудитории, доставляет сообщения мгновенно и бесплатно, а Bot API даёт готовую инфраструктуру: команды, кнопки, подписки. Не пришлось создавать и продвигать отдельное приложение — путь пользователя сократился до «нашёл бота и нажал старт».

Web Scraping + парсер госсайта

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

Notification System

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

PythonTelegram Bot APIWeb ScrapingGovernment Website ParserNotification System

Как шла разработка

Разведка источника

Готово

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

Прототип парсера

Готово

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

Контур мониторинга

Готово

Построили ядро: планировщик проверок, сравнение состояний с выделением новых слотов, повторные запросы при сбоях источника. Добились стабильной круглосуточной работы цикла «опрос — разбор — событие» на реальных данных государственного сайта.

Бот и подписки

Готово

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

Обкатка на живом трафике

Готово

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

Выход в продакшен

Готово

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

Результаты

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

Проект стал наглядным примером того, как точечная автоматизация решает повседневные задачи и экономит ресурсы: рутина, съедавшая часы ручных проверок, свелась к чтению уведомлений. Архитектура на Python с раздельными контурами парсинга и доставки оставляет запас на развитие — от новых направлений мониторинга до дополнительных каналов уведомлений. А партнёрство с Orbyx позволило пройти путь от идеи до запуска без раскачки.

1,8 месяца

от старта проекта до запуска

24/7

автоматический мониторинг госсайта

Мгновенно

уведомление при появлении слота

0

ручных проверок после запуска

Партнёрский проект

Этот кейс — партнёрский проект: бот отлова слотов реализован совместно с Orbyx. Инженерную часть — парсер госсайта, контур мониторинга и Telegram-бота — делала наша команда разработчиков полного цикла, а партнёрская модель помогла быстрее пройти путь от идеи до работающего продукта.

Мы открыто помечаем такие проекты: честное указание партнёра — часть нашей практики публикации кейсов. Технические детали решения при этом раскрыты полностью, как и в остальных кейсах МАЙПЛ.

Вопросы о проекте

Обсудим похожий проект?

Расскажите о задачах вашего бизнеса — предложим архитектуру и оценим сроки

Разработка чат-ботов