Кейс: Театральный Радар — бот для мониторинга билетов

Ниша: Театры, билеты, подписочный сервис Стек: Python, aiogram 3, Playwright, aiohttp, SQLite, APScheduler

Задача клиента

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

Решение от Flowcore

Мы разработали Telegram-бота "Театральный Радар", который автоматически отслеживает афиши 15+ московских театров, включая РАМТ, МХТ, Ленком, Сатирикон и другие площадки. Пользователь выбирает конкретные спектакли или целые театры, а бот сообщает о старте продаж, новых датах и появлении билетов.

Проект построен как полноценный подписочный сервис: с бесплатным лимитом отслеживаний, премиум-пакетами, оплатой через Telegram Payments и административными инструментами для промокодов, отчетов и статистики.

Ключевые реализованные возможности:

  • Мульти-театральный парсинг: Асинхронный сбор данных с 15+ сайтов театров с учетом разных структур, API и динамического контента.
  • Гибридный сбор данных: Для сайтов с открытым API используются прямые aiohttp-запросы, а для сложных JS-сайтов и защит — Playwright с браузерной эмуляцией.
  • Гибкие подписки на события: Пользователь может отслеживать конкретный спектакль или все постановки выбранного театра.
  • Уведомления о билетах и новых датах: Бот сообщает не только о появлении билетов, но и о расширении горизонта афиши, когда театр добавляет новые показы.
  • Монетизация через ЮKassa: Реализованы премиум-подписки на 1, 3 и 12 месяцев через Telegram Payments с запросом email и автоматической отправкой чеков.
  • Промокоды и администрирование: Администраторы могут создавать промокоды, смотреть статистику подписок и выгружать отчеты прямо через команды в боте.
  • Аналитика источников: Детальное логирование действий пользователей и deep linking помогают отслеживать источники трафика и популярность спектаклей.

Технические детали

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

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

Результат

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

Стек технологий

Python 3.10, aiogram 3, FSM, Playwright, aiohttp, BeautifulSoup4, SQLite, APScheduler, Telegram Payments, ЮKassa, Xvfb.

Связанные материалы

Как создать Telegram-бота

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

Читать гайд

Telegram-бот с Google Sheets

Как использовать таблицы для заявок, отчетов, справочников и админ-панели.

Читать гайд

Аналитика маркетплейсов

Как автоматизировать сбор данных, P&L, витрины и отчеты по маркетплейсам.

Читать гайд

Нужен бот для мониторинга сайтов?

Расскажите, какие площадки нужно отслеживать, какие события ловить и кому отправлять уведомления.