Telegram-бот и парсинг системы
Автор: Нестерова Н. С., Демченков М. В.
Журнал: Международный журнал гуманитарных и естественных наук @intjournal
Рубрика: Технические науки
Статья в выпуске: 7-2 (106), 2025 года.
Бесплатный доступ
Статья посвящена созданию интеллектуального агента, способного автоматически парсить и анализировать данные, поступающие из социальных сетей. Агент обладает возможностью не только извлекать и обрабатывать большие объёмы информации, но и интерпретировать её, превращая разрозненные данные в полезные аналитические выводы для маркетологов, социологов, политологов, выполнения прогнозов различного типа.
Чат-бот, парсинг, структура, диаграмма
Короткий адрес: https://sciup.org/170210808
IDR: 170210808 | DOI: 10.24412/2500-1000-2025-7-2-252-256
Текст научной статьи Telegram-бот и парсинг системы
Эпоха Big Data нуждается в наличии интеллектуальных агентов с возможностью самостоятельного парсинга и анализа данных из социальных сетей.
Таким образом необходимо наличие Telegram-бота, способного в автоматическом режиме:
-
- собирать новостной контент из заданных источников,
-
- производить интеллектуальную фильтрацию на основе тематических, тональных и контекстных признаков,
-
- оперативно предоставлять пользователю только релевантную и значимую информацию.
Реализация этой цели обеспечивает создание эффективного инструмента, способного решать задачи информационного мониторинга, персонализированной ленты новостей и интеллектуальной поддержки принятия решений.
Проведённый сравнительный анализ платформ разработки Telegram-ботов показал, что выбор метода реализации должен опираться на специфику задачи, а также учитывать баланс между гибкостью инструментария, сложностью настройки и доступностью экосистемы [1]. В условиях, когда проект ориентирован на автоматический сбор информации из внешних источников (социальных сетей, новостных каналов) и интеллектуальную фильтрацию по заданным критериям, особенно важными становятся такие параметры, как возможность обработки данных в реальном времени, расширяемость архитектуры и инте- грация с системами машинного анализа текста.
По результатам анализа были рассмотрены как визуальные конструкторы (Manybot, Chatfuel), так и полнофункциональные программные библиотеки на Python, Node.js и других языках [2-4]. Конструкторы оказались недостаточными в контексте требований к интеллектуальной обработке и парсингу – они ограничены в возможностях настройки логики, не позволяют взаимодействовать с внешними API и библиотеками анализа текста, а также не масштабируются под задачи машинного обучения.
Оптимальным путём реализации проекта стала разработка на языке Python с использованием среды разработки PyCharm и асинхронного фреймворка Aiogram, предоставляющего высокую производительность и гибкость при работе с Telegram Bot API. Такой подход обеспечивает полный контроль над логикой взаимодействия, позволяет подключать библиотеки для парсинга (например, requests, BeautifulSoup4, aiohttp) и модули для интеллектуальной фильтрации (в том числе с использованием библиотек NLTK, spaCy, transformers и др.).
Принятый подход позволяет выстроить модульную архитектуру бота, в которой компоненты отвечают за независимые задачи: получение и предварительную очистку данных, анализ содержимого, фильтрацию на основе ключевых признаков и выдачу релевантной информации пользователю. Такая структура легко масштабируется – можно подключать новые источники, адаптировать фильтры под тематические направления или интегрировать модели искусственного интеллекта для более глубокой семантической обработки.
Ключевым этапом разработки чат-бота явилось создание схемы компоновки системы, которая описывает ключевые модули с функциональными взаимосвязями и порядком взаимодействия в рамках общей архитектуры.
Схема определяет, порядок объединения компонентов системы для обеспечения стабильной работы парсинга, гибкой фильтрации и интерактивного взаимодействия с пользова- телем через интерфейс Telegram. Схема компоновки представлена на рисунке 1.
User (Пользователь) – инициирует запросы в Telegram-бот, отправляя команды или ключевые слова для получения информации. Ввод пользователя запускает цепочку логики, включая парсинг и фильтрацию.
Telegram Bot API – промежуточный уровень, через который происходит обработка входящих и исходящих сообщений. Он принимает запросы от пользователей, передаёт их в логический модуль, а также возвращает отфильтрованный контент обратно.

Core Logic Module (Основной логический модуль) – отвечает за координацию работы всей системы. Он анализирует команды пользователя, формирует задачи для парсинга, направляет их в соответствующий парсер и запускает фильтрацию полученных данных.
Parser Subsystem (Подсистема парсинга) – реализована на основе библиотек парсинга (например, requests, BeautifulSoup, lxml). Подсистема выполняет сбор данных с указанных источников (VK, Telegram-каналы, новостные сайты) и структурирует их в удобный для фильтрации формат.
Filtering Enging (Модуль интеллектуальной фильтрации) – применяет заданные критерии (по ключевым словам, по авторам, по дате, тематике и т.д.) для отбора релевантного контента. Этот модуль может использовать базовые алгоритмы на основе логических выраже- ний или даже ML-модели для оценки значимости новостей.
Database (База данных) – служит для хранения истории запросов, кэшированных новостных блоков и параметров фильтрации,что обеспечивает быстрый доступ к данным и возможность анализа предпочтений пользователя.
Admin Panel / Config Interface (Админ-панель) – используется разработчиком или администратором системы для настройки источников, фильтров и параметров работы парсинга и может использоваться для отслеживания логики и статистики.
Scheduler / Cron Task Manager (Планировщик задач) – отвечает за автоматический запуск парсинга по расписанию, поддерживая регулярность обновления новостного контента без участия пользователя.
Message Formatter (Формирователь сообщений) – адаптирует отфильтрованные данные в формат, удобный для отображения в Telegram (текст, ссылки, кнопки и т.д.). Также подготавливает шаблоны ответов и может генерировать карусели или инлайн-меню.
Telegram UI Layer (Интерфейс Telegram) – обеспечивает конечную визуализацию информации в Telegram: текстовые сообщения, кнопки, команды. Этот уровень отвечает за удобство и понятность взаимодействия.
Диаграмма вариантов использования Telegram-бота представлена на рисунке 2.

Рис. 2. Диаграмма вариантов использования Telegram-бота
На диаграмме представлены два ключевых актора – пользователь и администратор. Пользователь взаимодействует с готовой системой парсинга новостей, а именно: инициирует сбор контента по заданным параметрам (ключевые слова, темы), и получает персонализированные новостные дайджесты, автоматически отфильтрованные системой. Он также влияет на качество подборки через механизм обратной связи (оценки хорошо/Плохо) для корректировки работы алгоритмов. С другой стороны, администратор (разработчик)
управляет технической частью системы: настраивает и обновляет источники данных (Telegram-каналы, RSS-ленты, социальные сети), конфигуририрует NLP-фильтры (стоп-слова, тематические категории, параметры релевантности) и корректирует ML-модель в целях улучшения классификации контента, мониторит ошибки парсинга и выполняет техническое обслуживание системы.
Диаграмма активности и парсинг системы представлены на рисунке 3.
| Корректировка ML-модели

Рис. 3. Диаграмма активности Telegram-бота и парсинг системы

Процесс начинается с запроса пользователя, который через Telegram API передается ядру системы. Прежде всего проверяется наличие актуальных данных в БД. При их отсутствии - активируется парсер для сбора информации из внешних источников. Затем NLP-модуль последовательно удаляет дубликаты, классифицирует контент и оценивает релевантность. Материалы, не соответствую- щие критериям, отбраковываются. Система отправляет сформированный дайджест пользователю и ожидает обратной связи. Полученные оценки корректируют ML-модель для улучшения будущих подборок. При отсутствии запрошенного контента пользователю предлагается изменить параметры поиска.
Классы, их переменные и функции Telegram-бота представлены в таблице 1.
Таблица 1. Компоненты Telegram-бота и парсинг системы
Класс |
Атрибуты/Методы |
Описание |
DataTable |
source_links, parsed_content, getContent() |
Хранит кешированные новости и параметры фильтрации |
Parser |
target_sources, startParsing() |
Занимается сбором данных из Telegram, RSS и других источников |
NLPFilter |
stop_words, filterContent() |
Удаляет дубликаты, классифицирует контент по темам |
NewsItem |
title, source, relevance_score |
Структура единицы новостного контента |
TelegramAPI |
sendDigest(), getUserFeedback() |
Отправляет результаты пользователю и получает оценки |
User |
preferences, rateContent() |
Управляет запросами и фидбеком |
MLModel |
updateWeights(), predictRelevance() |
Адаптирует фильтрацию на основе оценок пользователей |
Основными результатами работы является создание Telegram-бота, реализующего интеллектуальный анализ пользовательского запроса, автоматизированный сбор новостного контента из Telegram-каналов, его семантическую фильтрацию на основе лемматизации и понятийной близости, сохранение пользовательского фидбека и уточнения исходного запроса. Также поддерживается расширение базы знаний и интерактивное дообучение системы.
Областью применения являются системы мониторинга, редакционные и аналитические службы, интеллектуальные ассистенты, образовательные и исследовательские проекты, коммерческий продукт.