Что такое парсинг в телеграмме
Перейти к содержимому

Что такое парсинг в телеграмме

  • автор:

Telegram::GroupScraper — Парсер данных из публичных групп в Телеграм

Этот парсер собирает из публичных групп в Telegram данные о сообщениях. Парсер групп/чатов Телеграм выполняет сбор участников, которые что-то писали в группе, либо есть сервисное уведомление о их присоединении к группе. Вы можете парсить весь контент из нужных групп, а именно: текст, картинки, ссылки на видео, получать информацию о дате публикации, авторе (имя, ссылка на профиль, аватар).

Его логика работы отличается от остальных парсеров, т.к. он автоматически добавляет запросы для перебора всех сообщений в группе. Из-за этого данный парсер нельзя использовать вместе с любыми другими в одном задании.

Сохранение результатов возможно в том виде и структуре которая вам необходима, благодаря встроенному мощному шаблонизатору Template Toolkit который позволяет применять дополнительную логику к результатам и выводить данные в различных форматах, включая JSON, SQL и CSV.

Кейсы по применению парсера​

�� Парсинг пользователей

Парсинг пользователей публичных групп в Telegram

�� Парсинг всех сообщений

Парсинг всех сообщений из публичных групп в Telegram

Собираемые данные​

  • Ссылка на сообщение
  • Имя автора, ссылка на его профиль и аватар
  • Содержимое сообщения, в зависимости от типа это может быть:
    • текст
    • ссылка на фото
    • ссылка на видео

    Варианты использования​

    • Сбор списка участников группы
    • Сбор содержимого всех сообщений в группе

    Запросы​

    В качестве запросов необходимо указывать ссылку на публичную группу, например:

    https://t.me/a_parser 

    Варианты вывода результатов​

    A-Parser поддерживает гибкое форматирование результатов благодаря встроенному шаблонизатору Template Toolkit, что позволяет ему выводить результаты в произвольной форме, а также в структуированной, например CSV или JSON

    Вывод по умолчанию​

    $user_name($user_link): $message_text\n 

    ПАРСИНГ ТЕЛЕГРАМ-КАНАЛОВ КАК ЭЛЕМЕНТ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО АНАЛИЗА ИНФОРМАЦИИ, ПОЛУЧЕННОЙ ИЗ СЕТИ ИНТЕРНЕТ Текст научной статьи по специальности «Компьютерные и информационные науки»

    Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Карабак Илья Игоревич, Зорин Кирилл Андреевич, Ажмухамедов Искандар Маратович

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

    i Надоели баннеры? Вы всегда можете отключить рекламу.

    Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Карабак Илья Игоревич, Зорин Кирилл Андреевич, Ажмухамедов Искандар Маратович

    АНАЛИЗ И РАЗРАБОТКА ФУНКЦИОНАЛЬНОГО TELEGRAM-БОТА

    Использование функций мессенджера Telegram для обмена сообщениями между узлами распределенной вычислительной системы

    МОНИТОРИНГ СТАБИЛЬНОСТИ СЕТЕВОЙ ИНФРАСТРУКТУРЫ С ИСПОЛЬЗОВАНИЕМ МЕССЕНДЖЕРА TELEGRAM
    Описание концепции Telegram ботов и их разработка
    Оценка безопасности систем мгновенного обмена сообщениями методом анализа иерархий
    i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
    i Надоели баннеры? Вы всегда можете отключить рекламу.

    PARSING OF TELEGRAM CHANNELS AS AN ELEMENT OF THE SYSTEM OF AUTOMATED ANALYSIS OF INFORMATION RECEIVED FROM THE INTERNET

    This article described the specifics of the work and described the protocols of one of the most popular instant messengers — Telegram . The developed software allows you to automate the collection of text data from the public communities of the Telegram messenger. To implement the service interaction, a message broker, RabbitMQ, was used. All received messages from the messenger are transferred to the broker’s queue, to which, if configuration data is available, any analyzer service can connect and start processing the received data. The implemented software is relevant for automated processing of information published in the messenger

    Текст научной работы на тему «ПАРСИНГ ТЕЛЕГРАМ-КАНАЛОВ КАК ЭЛЕМЕНТ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО АНАЛИЗА ИНФОРМАЦИИ, ПОЛУЧЕННОЙ ИЗ СЕТИ ИНТЕРНЕТ»

    ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ

    СИСТЕМНЫЙ АНАЛИЗ, УПРАВЛЕНИЕ И ОБРАБОТКА ИНФОРМАЦИИ

    DOI 10.54398/2074-1707_2022_1_9 УДК 004.4

    ПАРСИНГ ТЕЛЕГРАМ-КАНАЛОВ КАК ЭЛЕМЕНТ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО АНАЛИЗА ИНФОРМАЦИИ, ПОЛУЧЕННОЙ ИЗ СЕТИ ИНТЕРНЕТ

    Статья поступила в редакцию 17.01.2022, в окончательном варианте — 14.02.2022.

    Карабак Илья Игоревич, Астраханский государственный университет, 414056, Российская Федерация, г. Астрахань, ул. Татищева, 20а,

    магистрант, ORCID: 0000-0002-5894-9273, е-mail: razvitienonedegradacia@gmail.com Зорин Кирилл Андреевич, Астраханский государственный университет, 414056, Российская Федерация, г. Астрахань, ул. Татищева, 20а,

    ассистент кафедры информационной безопасности и цифровых технологий, ORCID: 0000-0003-1614-8168, e-mail: kirocan95@gmail.com

    Ажмухамедов Искандар Маратович, Астраханский государственный университет, 414056, Российская Федерация, г. Астрахань, ул. Татищева, 20а,

    доктор технических наук, декан факультета цифровых технологий и кибербезопасности, профессор кафедры информационной безопасности, ORCID: 0000-0001-9058-123X, e-mail: aim_agtu@mail.ru

    В данной статье были описаны специфика работы и протоколы одного из самых популярных мессен-джеров — Telegram. Разработанное программное обеспечение позволяет автоматизировать сбор текстовых данных из публичных сообществ мессенджера Telegram. Для реализации сервисного взаимодействия был использован брокер сообщений RabbitMQ. Все полученные сообщения из мессенджера передаются в очередь брокера, к которой при наличии конфигурационных данных может подключиться любой сервис — анализатор и начать обрабатывать полученные данные. Реализованное программное обеспечение актуально для автоматизированной обработки информации, публикуемой в мессенджере.

    Ключевые слова: анализ, Telegram, параметры, парсинг, короткие сообщения, сервис

    PARSING OF TELEGRAM CHANNELS AS AN ELEMENT OF THE SYSTEM OF AUTOMATED ANALYSIS OF INFORMATION RECEIVED FROM THE INTERNET

    The article was received by the editorial board on 17.01.2022, in the final version — 14.02.2022.

    KarabakIlya I., Astrakhan State University, 20a Tatishchev St., Astrakhan, 414056, Russian Federation, undergraduate student, ORCID https://orcid.org/0000-0002-5894-9273, е-mail: razvitienon edegradacia@gmail.com

    Zorin KiriUA., Astrakhan State University, 20a Tatishchev St., Astrakhan, 414056, Russian Federation, Assistant of the Department of Information Security and Digital Technologies, e-mail: kirocan95@gmail.com

    Azhmukhamedov Iskandar M., Astrakhan State University, 20a Tatishchev St., Astrakhan, 414056, Russian Federation,

    Doct. Sci. (Engineering), Dean of the Faculty of Digital Technologies and Cybersecurity, Professor of the Department of Information Security, e-mail: aim_agtu@mail.ru

    This article described the specifics of the work and described the protocols of one of the most popular instant messengers — Telegram. The developed software allows you to automate the collection of text data from the public communities of the Telegram messenger. To implement the service interaction, a message broker, RabbitMQ, was used. All received messages from the messenger are transferred to the broker’s queue, to which, if configuration data is available, any analyzer service can connect and start processing the received data. The implemented software is relevant for automated processing of information published in the messenger

    Keywords: analysis, Telegram, parameters, parsing, short messages, service

    Graphical annotation (Графическая аннотация)

    Введение. На сегодняшний день интернет-пространство стало неотъемлемой частью жизни современного человека. Объемы информации, которую получает человек в современном мире, с каждым днём увеличиваются в геометрической прогрессии. В интернет-среде существуют различные источники информации, такие как онлайн-СМИ, социальные сети, мессенджеры, чаты, форумы. Информация в этих источниках может содержать мнения пользователей; общедоступные данные, размещаемые пользователями в социальных сетях; результаты поисковой выдачи и т. д.

    Одним из наиболее распространённых источников распространения информации в интернет -пространстве является мессенджер Telegram, который в последние годы приобрел большую популярность в мире. Только за 4 года, с 2016 по 2020 г., аудитория данного мессенджера увеличилась более чем в 4 раза (рис. 1).

    Рисунок 1 — Рост пользователей мессенджера Telegram по данным сайта telegram.org [1]

    При этом среди пользователей мессенджера наиболее популярны Telegram-каналы. Существует два вида Telegram-каналов:

    • публичные — общедоступный вид сообществ — такие каналы доступны любому пользователю мессенджера для чтения и подписки. Это самый распространенный формат сообществ в Telegram;

    • частные — закрытый вид сообществ, доступ в которые можно получить только по ссылке, известной только администратору канала.

    Пользователей Telegram привлекает его анонимность, безопасность, понятный интерфейс,

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

    В статье Т.Э. Вильданова, Н.С. Иванова «Анализ инструментов парсинга и веб-скрейпинга в рамках разработки арбитражной инвестиционной стратегии на рынке спортивных ставок» [2] приводится исследование популярных инструментов для парсинга публичных сайтов, а также выявлены наиболее быстрые инструменты и методы для быстрого извлечения и обработки информации в больших количествах. В статье Д.З. Цхошвили, Н.А. Иванова «Примеры использования технологии парсинга» [3] приводятся примеры использования технологии анализа данных — парсинга, которые представлены в современных научных работах. Однако методы и инструменты, описанные в данных статьях, не позволяют производить парсинг публичных Telegram-каналов, так как, в отличие от сайтов, мессенджер Telegram имеет свою сложную структуру хранения сообщений, а также использует отдельный протокол для работы с сообщениями. Таким образом, задача автоматизированного сбора информации, публикуемой в общедоступных группах, созданных в мес-сенджере Telegram, является не до конца решенной.

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

    Программное обеспечение будет являться компонентом общей системы анализа текстовой информации, полученной из различных источников информации интернета. Общая схема взаимодействия компонентов такой системы, построенная в стандарте UML [2], представлена на рисунке 2.

    Рисунок 2 — Диаграмма развертывания системы анализа текстовой информации, полученной из различных источников интернета

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

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

    • текстовый контент (сообщения, комментарии к сообщениям);

    • медиаконтент (видео, аудио);

    • прочие файлы (документы, архивы, файлы приложений).

    В мессенджере Telegram существует два вида интернет-сообществ: чаты и каналы. Telegram-

    канал представляет собой чат с односторонней связью, в котором только администратор канала может оставлять сообщения. Также, по желанию, администратор канала может предоставить доступ подписчика канала комментировать его публикации. Telegram-чат представляет из себя площадку, где все участники могут принимать участие в общение. Возможность комментировать сообщения участников отсутствует.

    Для решения задачи автоматизации сбора данных, представляющих собой текстовую информацию, были проанализированы способы и методы, позволяющие взаимодействовать с программным обеспечением мессенджера Telegram. В частности, была исследована документация API-набора функций, методов, которые позволяют взаимодействовать с программным обеспечением Telegram строго в рамках политики компании [3]. Это позволило выбрать возможные пути доступа к сервисам мессенджера, которые могут быть использованы при разработке программного обеспечения для парсинга. Для того чтобы взаимодействовать с API, требуется заполнить специальную форму на сайте https://my.telegram.org/, с помощью которой создаётся собственное прило-

    Delete Account or Manage Apps

    Log in here to manage your apps using Telegram API or delete your account. Enter your number and we will send you a confirmation code via Telegram (not SMS).

    Your Phone Number

    +12223334455 Please enter your number in international format

    Рисунок 3 — Заполнение формы Telegram API

    Приложение хранит уникальные значения, идентифицирующие пользователя в системе Telegram API, — «api_id» и «api_hash». Значение «api_id» представляет собой последовательность цифр, а «api_hash» — буквенно-цифровую последовательность. Оба значения автоматически генерируются сервером Telegram на бессрочный период.

    Идентификаторы API являются токенами приложения. Это означает, что при использовании приложения пользователю не нужно вводить собственные идентификаторы API, достаточно идентификатора разработчика.

    Для взаимодействия с сервисами мессенджера пользователю предоставляется два вида API:

    Bot API был создан для пользователей, которые разрабатывают Telegram-боты. Боты — это специальные аккаунты, которые авторизуются с помощью токенов, а не телефонных номеров. Bot API построен на основе MTProto API, но использует промежуточный HTTP-сервер для обмена запросами с серверами Telegram. В качестве формата данных для взаимодействия с API используется формат JSON. Большинство методов MTProto API, созданных для работы с сообщениями, недоступны в Bot API.

    Изначально протокол MTProto был создан командой разработчиков мессенджера как криптографический протокол для шифрования сообщений. Протокол основан на алгоритме шифрования AES [5], а также на криптографическом алгоритме Диффи — Хеллмана [6].

    MTProto API является основным API Telegram, с помощью которого пользователи могут подключаться напрямую к сервисам Telegram (рис. 4). Данный протокол использует сериализацию данных в бинарный вид.

    жение Telegram API (рис. 3) [4].

    User „ НГГР Bot Api MTProto/TCP Telegram

    Рисунок 4 — Схема работы протоколов MTProto API и BotAPI

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

    Для парсинга сообщений в Telegram-сообществах мессенджер предоставляет различные методы API. Одним из таких является messages.getHistory, которому на вход могут подаваться следующие параметры:

    • peer — сущность (идентификатор канала, идентификатор пользователя), от которой разработчик хочет получить сообщения; имеет тип данных «InputPeer»;

    • offset_id — идентификатор сообщения; если параметр задан, будут возвращены сообщения, начиная с заданного идентификатора; имеет тип данных целочисленный;

    • offset_date — дата отправки сообщения; если параметр задан, будут возвращены только те сообщения, которые были отправлены до указанной даты; имеет тип данных целочисленный;

    • add_ofset — данный параметр дополняет параметр offset_id; имеет целочисленный тип данных;

    • limit — количество сообщений, которое нужно возвратить; если параметр имеет значение «None», то метод вовзратит всю историю сообщений; имеет тип данных целочисленный;

    • max_id — если данный параметр задан, то метод вернёт все сообщения с меньшими идентификаторами; имеет тип данных целочисленный;

    • min id — если данный параметр задан, то метод вернёт все сообщения с б о льшими идентификаторами; имеет тип данных целочисленный;

    • hash — данный параметр позволяет хэшировать запрос; имеет целочисленный тип данных.

    После того как запрос отправлен, метод messages.getHistory возвращает ответ в виде объекта

    типа messages.Messages, который содержит в себе список сообщений и информацию об этих сообщениях. Данный объект имеет четыре так называемых конструктора, которые формируют ответы на запрос пользователя в зависимости от значения параметров запроса:

    • messages.messages — возвращает полный список сообщений и информацию об этих сообщениях;

    • messages.messagesSlice — выдаёт список сообщений и информацию об этих сообщениях;

    • messages.channelMessages — возвращает сообщения Telegram-канала;

    • messages.messagesNotModified — возвращается в том случае, если сообщения не обнаружены.

    В мессенджере Telegram также есть возможность комментировать публикации сообщества,

    если администратор сообщества даёт доступ к этой функции. Метод messages.getReplies позволяет получить такие комментарии в зависимости от заданных параметров. Основные параметры метода messages.getReplies:

    • msg_id — идентификатор сообщения — комментария;

    • limit — максимальное количество возвращаемых результатов.

    Данный метод также возвращает объект типа messages.Messages в виде списка комментариев в соответствии с заданными параметрами.

    Для глобального поиска сообщений мессенджера Telegram существует функция messages.searchGlobal, которая имеет следующие основные параметры:

    • folder_id — идентификатор каталога, имеет тип данных flags.0?int;

    • q — задаёт значение для глобального поиска, имеет строковый тип данных;

    • filter — фильтр сообщений для глобального поиска, тип данных MessagesFilter.

    Данный метод также возвращает объект типа messages.Messages.

    На основе описанных выше методов было разработано программное обеспечение, которое

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

    Описание ПО. Telegram MTProto API для языка программирования Python реализовано в виде библиотеки Telethon [7]. Данная библиотека содержит в себе множество функций и методов, позволяющих осуществлять работу с серверами мессенджера Telegram.

    Для парсинга текстового контента целесообразно использовать функцию iter_messages библиотеки Telethon. С помощью данной функции программа отправляет запрос на сервера Telegram с заданными параметрами. Если параметры верны, программа получает ответ.

    Функция iter_messages позволяет задать следующие параметры:

    • entity — данный параметр определяет объект, от которого нужно получить сообщение; может быть ссылкой на канал или чат;

    • limit — количество сообщений, которое требуется получить; если задано None, то параметр вернёт все сообщения объекта;

    • reply_to — комментарии к сообщению, если известен идентификатор сообщения;

    • offset_date — возвращает сообщения, предшествующие этой дате.

    Взаимодействие программного обеспечения с Telegram API представлено на рисунке 5.

    Рисунок 5 — Схема взаимодействия программного обеспечения с Telegram API

    Программное обеспечение было реализовано с помощью языка программирования высокого уровня Python версии 3.7 [8]. Для нормального функционирования программе требуется постоянный доступ в интернет. Работа ведётся посредством использования командной строки. Данное программное обеспечение может собирать информацию из интернет-сообществ в мессенджере Telegram, таких как чаты и каналы. Для обоих видов сообществ можно задавать лимит выгружаемых сообщений; период, в течение которого сообщения были опубликованы; имя пользователя, который публиковал сообщения и т.д. После того как результаты парсинга были получены про-граммой-парсером, они выгружаются в брокер сообщений.

    Конечная структура ПО выглядит следующим образом (рис. 6).

    Рисунок 6 — Схема работы парсера

    На данной диаграмме отображена схема работы парсера. После того как пользователь мес-сенджера «Telegram» публикует сообщение в телеграм сообществе, ПО автоматически производит парсинг данных о сообщении, после чего результаты парсинга отправляет в брокер сообщений RabbitMQ, тем самым создавая поток сообщений с возможностью подключения подписчиков.

    Пример работы программного обеспечения. Работа с программой осуществляется через командную строку. Для корректного взаимодействия с приложением пользователю необходимо подать на вход программы ссылку на канал или чат из мессенджера Telegram (рис. 7).

    i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

    Введите ссылку на канал или чат:

    Рисунок 7 — Стартовый экран программы

    После того как пользователь ввёл ссылку программа начинает парсинг сообщений из канала или чата по ссылке в соответствии с заданными параметрами.

    Все данные, полученные в ходе работы парсера, передаются в брокер сообщений RabbitMQ [9]. Брокер хранит в себе данные о публикациях, которые были получены в результате парсинга. Их можно использовать в дальнейшей работе для анализа информации. Для этого сервису-подписчику необходимо подключиться к брокеру, используя строку подключения, введя логин и пароль для доступа, после чего он может использовать передаваемый поток сообщений для проведения анализа и систематизации этих данных. Пример процесса отправки данных в брокер сообщений проиллюстрирован на рисунке 8.

    [х] Отправлено Задержан вице-спикер заксобрания Красноярского края Натаров (бывший депутат Госдумы от ЛДПР), расска

    По его словам, задержание связано с делом сына Натарова, которого задержали еще в 2819 по делу о мошенничестве.

    [х] Отправлено По всем трем эпизодам с ж*истязанием заключенных в красноярских колониях, **видео с которыми появило По его словам, первые два эпизода имеют криминальный характер и относятся к 2615 — «по ним уже проведены все мыслимы По третьему видео, которое снято в 2928, проводилась долгая проверка — в СК пришли к заключению, что имел место суиц

    «Были наказаны сотрудники многие и даже те, кто не участвовал, а просто знал и не сообщил — они были уволены»

    [х] Отправлено На этом видео из сгоревшей томской «Ленты» не поджигатель, как сообщали некоторые СМИ, а громоутер,

    Рисунок 8 — Пример отправки сообщений в брокер сообщений RabbitMQ

    Данные, полученные в ходе парсинга, передаются в брокер сообщений в формате данных JSON. Структура сообщения, хранящегося в RabbitMQ, представлена на рисунке 9.

    IbRabbitMQ — RabbitMQ 3.9.11 Erlang 24.1.7 Overview Connections Channels Exchanges

    Refreshed 2022-01-03 16:16:30 Ir^^»,* ч Virtual host [»rv| Cluster rabbit@DESKTOP-lEEGBMT User guest рта

    The server reported 0 messages remaining. Exchange (AMQP default)

    Routing parse tg Key Redelivered с Properties Payload

    «Name»: «Telegram», «link»: «https://t.me/rian_ru»

    «Data»: «Российская лыжница Наталья Непряеяа победила я масс-старте классическим стилем на этапе \»Тур де С «link»: «https://t.Me/rian_ru/137581»

    «Data»: «В посольстве ФРГ в Москве тоже не подтвердили РИД Новости сообщения о возможной встрече канцлера 4 «link»: «https://t,me/nian_nu/1375S0»

    Рисупок 9 — Структура хранения сообщений в RabbitMQ

    Сообщение представляет из себя набор пар «ключ — значение», где в качестве значений выступают текстовый контент, полученный в результате парсинга, а также ссылки на полученные данные.

    Представленное ПО используется как часть общей системы для анализа текстовой информации. Модуль зарегистрирован как программное обеспечение [12]. Для того чтобы воспользоваться возможностями данного модуля, необходимо получить логин и пароль для доступа к брокеру сообщений и считывать данные в любом режиме. Благодаря данному модулю пользователи смогут автоматизировать процесс сбора данных в различных направлениях, к примеру: сбор комментариев пользователей об услуге, товаре и т. д.

    Заключение. При постоянно увеличивающимся потоке информации в интернете проблема автоматизированного сбора публичной информации в телеграм-каналах становится всё более актуальной. В данной статье была описана структура разработанного программного обеспечения, которое позволит осуществлять сбор информации, публикуемой в общедоступных группах, созданных в мессенджере Telegram. Предложенный программный продукт автоматически обрабатывает публикуемые сообщения в сообществах и группах, после чего передает данные в брокер сообщений RabbitMQ. К брокеру сообщений возможно подключить множество программ, которые будут использовать эти данные для различных целей. Основными функциями таких сервисов может быть: обнаружение экстремистских материалов, анализ рекламных блоков, анализ вовлеченности аудитории и т. д. В текущем виде предложенный модуль парсинга телеграм-каналов используется как компонент общей системы для анализа текстовой информации в интернете. Описанный в данной статье программный продукт позволяет экономить ресурсы и средства, а также осуществить в дальнейшем интеграцию модулей для анализа информации, поступающей из разных источников.

    1. 400 миллионов пользователей. — Режим доступа: https://telegram.org/blog/400-million/ru, свободный. -Заглавие с экрана. — Яз. рус. (дата обращения: 07.12.2021).

    2. Вильданов, Т. Э. Анализ инструментов парсинга и веб-скрейпинга в рамках разработки арбитражной инвестиционной стратегии на рынке спортивных ставок / Т. Э. Вильданов, Н. С. Иванов // Скиф. Вопросы студенческой науки. — 2021. — № 5 (57). — С. 23-33.

    3. Цхошвили, Д. З. Примеры использования технологии парсинга / Д. З. Цхошвили, Н. А. Иванова // Актуальные вопросы в науке и практике : сборник статей по материалам IV Международной научно-практической конференции : в 5 ч. Самара, 11 декабря 2017 года. — Самара : Общество с ограниченной ответственностью «Дендра», 2017. — С. 135-138.

    4. Грейди, Буч. Язык UML. Руководство пользователя = The Unified Modeling Language user guide / Грейди Буч, Джеймс Рамбо, Айвар Джекобсон. — 2-е изд. — Москва ; Санкт-Петербург : ДМК Пресс, Питер, 2004. — 432 с. — ISBN 5-94074-260-2.

    5. Telegram APIs. — Режим доступа: https://core.telegram.org/, свободный. — Заглавие с экрана. — Яз. англ. (дата обращения: 07.12.2021).

    6. Delete Account or Manage Apps — Режим доступа: https://my.telegram.org/auth, свободный. — Заглавие с экрана. — Яз. англ. (дата обращения: 07.12.2021).

    7. Баричев, С. Г. 2.4.2. Стандарт AES. Алгоритм Rijdael / С. Г. Баричев, В. В. Гончаров, Р. Е. Серов // Основы современной криптографии. — 3-е изд. — Москва : Диалог-МИФИ, 2011. — С. 30-35. — ISBN 978-59912-0182-7.

    8. Черёмушкин, А. В. Криптографические протоколы: основные свойства и уязвимости / А. В. Черёмуш-кин // Прикладная дискретная математика. — 2009. — Вып. 2. — С. 115-150.

    9. Telethon’s Documentation. — Режим доступа: https://docs.telethon.dev/en/latest/, свободный. — Заглавие с экрана. — Яз. англ. (дата обращения: 07.12.2021).

    10. Python 3.7.0. — Режим доступа: https://www.python.org/downloads/release/python-370/, свободный. -Заглавие с экрана. — Яз. англ. (дата обращения: 07.12.2021).

    11. RabbitMQ. — Режим доступа: https://www.rabbitmq.com/, свободный. — Заглавие с экрана. — Яз. англ. (дата обращения: 22.12.2021).

    12. Крэг, Ларман. Применение UML 2.0 и шаблонов проектирования / Крэг Ларман. — Вильямс, 2019. -736 с. — ISBN 978-5-907144-36-1.

    13. Ричардсон Крис. Микросервисы. Паттерны разработки и рефакторинга. — Прогресс книга, 2021. — 544 с. -ISBN 978-5-4461-0996-8.

    14. Карабак, И. И. Программа для парсинга сообщений в публичных телеграм-каналах : свидетельство о регистрации программы для ЭВМ RU 2021680437, 10.12.2021. — Заявка № 2021669987 от 30.11.2021 / И. И. Карабак, К. А. Зорин, И. М. Ажмухамедов.

    1. 400 millionov polzovateley [400 million users]. Available at: https://telegram.org/blog/400-million/ru (accessed 07.12.2021).

    2. Vildanov, T. E., Ivanov, N. S. Analiz instrumentov parsinga i veb-skreypinga v ramkahh razrabotki arbitrazhnoy

    investitsionnoy strategii na rynke sportivnykh stavok [Analysis of parsing and web-scraping tools as part of the development of an arbitrage investment strategy in the sports betting market]. Skif. Voprosy studencheskoy nauki [Scythian Issues of Student Science], 2021, no. 5 (57), pp. 23-33.

    3. Tskhoshvili, D. Z., Ivanova, N. A. Primery ispolzovaniya tekhnologii parsinga [Examples of the use of parsing technology]. Aktualnye voprosy v nauke ipraktike : sbornik statey po materialam IVMezhdunarodnoy nauchno-prakticheskoy konferentsii [Topical issues in science and practice : collection of articles based on the materials of the IV International Scientific and Practical Conference], in 5 parts, Samara, December 11, 2017. Samara, Dendra Limited Liability Company, 2017, pp. 135-138.

    4. Grady, Booch, James, Rumbaugh, Ivar, Jacobson. Yazyk UML. Rukovodstvo polzovatelya [The Unified Modeling Language. User guide]. 2nd ed. Moscow, St. Petersburg, DMK Press, Peter, 2004. 432 p. ISBN 5-94074-260-2.

    5. Telegram APIs. Available at: https://core.telegram.org/ (accessed 07.12.2021).

    6. Delete Account or Manage Apps. Available at: https://my.telegram.org/auth (accessed 07.12.2021).

    7. Barichev, S. G., Goncharov, V. V., Serov, R. E. 2.4.2. Standart AES. Algoritm Rijdael [AES standard. Rijdael algorithm]. Osnovy sovremennoy kriptografii [Fundamentals of modern cryptography]. 3rd ed. Moscow, Dialogue-MEPhI, 2011, pp. 30-35. ISBN 978-5-9912-0182-7.

    8. Cheryomushkin, A. V. Kriptograficheskie protokoly: osnovnye svojstva i uyazvimosti [Cryptographic protocols: basic properties and vulnerabilities]. Prikladnaya diskretnaya matematika [Applied Discrete Mathematics], 2009, iss. 2, pp. 115-150.

    9. Telethon’s Documentation. Available at: https://docs.telethon.dev/en/latest/ (accessed 07.12.2021).

    10. Python 3.7.0. Available at: https://www.python.org/downloads/release/python-370/ (accessed 07.12.2021).

    11. RabbitMQ. Available at: https://www.rabbitmq.com/ (accessed 12.22.2021).

    12. Craig, Larman. Primenenie UML 2.0 i shablonovproektirovaniya [Applying UML 2.0 and Design Patterns]. Williams, 2019. 736 p. ISBN 978-5-907144-36-1.

    13. Richardson, Chris. Mikroservisy. Patterny razrabotki i refaktoringa [Microservices. Patterns of development and refactoring]. Progress book, 2021. 544 p. ISBN 978-5-4461-0996-8.

    14. Karabak, I. I., Zorin, K. A., Azhmukhamedov, I.M. Programma dlya parsinga soobshcheniy v publichnykh telegram-kanalakh : svidetelstvo o registratsiiprogrammy dlya EVMRU 2021680437 [Program for parsing messages in public telegram channels Registration certificate for the computer program RU 2021680437], 10.12.2021. Application No. 2021669987 dated 11. 30.2021.

    DOI 10.54398/2074-1707_2022_1_17 УДК 004.001

    СОЗДАНИЕ КОРПОРАТИВНОЙ ПОЧТОВОЙ СИСТЕМЫ С ИСПОЛЬЗОВАНИЕМ СИСТЕМЫ УПРАВЛЕНИЯ КОНФИГУРАЦИЯМИ

    Статья поступила в редакцию 19.11.2021, в окончательном варианте — 13.01.2022.

    Иванова Наталья Александровна, Брянский государственный университет им. академика И.Г. Петровского, 241036, Российская Федерация, г. Брянск, ул. Бежицкая, 14,

    кандидат технических наук, доцент, ORCID: 0000-0001-5135-9310, e-mail: ivanova.na@brgu.ru Кубанских Олеся Владимировна, Брянский государственный университет им. ак. И.Г. Петровского, 241036, Российская Федерация, г. Брянск, ул. Бежицкая, 14,

    кандидат физико-математических наук, доцент, ORCID: 0000-0003-0320-1652, e-mail: netbay.ov@brgu.ru

    В данной статье рассмотрен процесс развертывания корпоративного почтового сервера посредством системы управления конфигурациями. Проведен анализ наиболее распространенных СМ-систем с учетом используемой архитектуры, наличия web-интерфейса, используемого языка, поддерживаемых платформ, применяемых настроек на контролируемом хосте. В работе были определены технические требования, необходимые для корректного функционирования системы управления конфигурациями и корпоративного почтового сервера. Контроль и управление трафиком почтовой службы вуза, максимальная защита обмена деловой корреспонденции от массовых рассылок и внешних атак, организация комфортного взаимодействия коллег — всё это возможности реализованной корпоративной почтовой системы. Данный способ организации корпоративной почты с использованием системы управления конфигурациями упрощает работу по настройке и развертыванию почтового сервера, оптимизируя работу технического персонала и образовательного учреждения в целом.

    Ключевые слова: почтовый сервер, корпоративная почта, система управления конфигурациями, iRedMail, Ansible

    Парсеры Telegram – зачем парсят информацию, и с помощью чего этого делают

    Telegram выступает в качестве бастиона современной коммуникации. Здесь люди собираются для обмена идеями, информацией и просто досужего общения. Благодаря миллионам активных юзеров и бесчисленным группам и каналам, охватывающим самые разные темы, Telegram превратился в сокровищницу информации. Она только ждет, чтобы ее взяли и грамотно использовали. Эта статья описывает искусство парсинга Telegram, чей потенциал безгранично велик. В этой статье углубимся в мир парсинга в Telegram, его преимущества и важную роль, которую качественные прокси и боты играют в оптимизации процесса.

    Зачем парсить информацию в Telegram?

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

    Необходимость прокси при парсинге Telegram

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

    • Анонимность. Прокси скрывают личность, предотвращая возможные баны или другие ограничения, налагаемые Telegram на чрезмерные запросы.
    • Защита от бана IP-адресов. В Telegram предусмотрены меры для предотвращения огромного количества запросов с отдельных IP-адресов. Прокси позволяют распределять их по нескольким IP-адресам, снижая риск бана аккаунта.
    • Географическое разнообразие. Прокси из разных мест позволяют получить доступ к информации из разных регионов, что облегчает процесс парсинга.
    • Распределение нагрузки. Распределение запросов между несколькими прокси снижает нагрузку на любой отдельный сервер и повышает производительность.

    Алгоритм парсинга в Telegram на примере стандартного API

    Давайте рассмотрим упрощенный алгоритм парсинга в Telegram:

    • Выберите чат/канал, в котором хотите собрать данные. Обратите внимание, что для извлечения данных приватных чатов могут потребоваться более сложные методы.
    • Используйте API Telegram. Внедрите API Telegram или библиотеки, такие как Telethon, для программного взаимодействия с чатом/каналом.
    • Извлечение участников. Используйте функцию GetParticipantsRequest для получения данных участников. Сюда могут входить имена пользователей, идентификаторы, имена и многое другое.
    • Фильтрация и анализ. Отфильтруйте информацию и проанализируйте набор данных. Это может включать категоризацию пользователей, сортировку по активности или выявление конкретных закономерностей.
    • Интеграция прокси. Интегрируйте прокси, чтобы обеспечить плавный и бесперебойный парсинг. Наш сервис предлагает широкий выбор прокси из разных стран, обеспечивая необходимую гибкость в работе.

    Готовые боты для парсинга Telegram (выполняют только ограниченный пул задач)

    В процессе анализа незаменимы окажутся боты. Каждый из них обладает собственным набором функций и возможностей:

    • ParserTgChat_bot: этот бот может извлекать ники пользователей из чатов, представляя их в структурированном формате.
    • Parsetgbot: Parsetgbot предназначен для сбора информации о пользователях, включая их ники и идентификаторы каналов.

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

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

    Парсим данные в Telegram на Python. Часть 1. Выбираем библиотеку и изучаем подписчиков

    Собираем данные о подписчиках телеграм-каналов и чатов с помощью библиотеки Telethon.

    Иллюстрация: Катя Павловская для Skillbox Media

    Антон Яценко

    Антон Яценко
    Изучает Python, его библиотеки и занимается анализом данных. Любит путешествовать в горах.

    Для анализа телеграм-каналов и чатов используют парсеры данных. Это специальные программы, которые позволяют получить информацию о подписчиках, публикациях и обсуждениях с помощью механизмов самого мессенджера (API). Существует немало коммерческих парсеров, однако создать их можно и самостоятельно — используя специальные библиотеки для языков программирования.

    В этой статье мы научимся работать с библиотекой Telethon для Python, которая автоматизирует работу по сбору данных из мессенджера: напишем на ней простой парсер для получения информации о подписчиках телеграм-групп или каналов. Это первая часть урока — во второй части будем парсить уже сообщения пользователей.

    Библиотека Telethon и особенности парсинга

    Написать парсер для Telegram можно на любом языке программирования, позволяющем работать с API: Python, JavaScript, Go и так далее. Каждый из них имеет свою универсальную библиотеку для работы с любыми API, а некоторые — даже специализированные библиотеки для Telegram.

    Мы остановимся на Python — одном из самых популярных языков программирования. В экосистеме Python есть удобная асинхронная библиотека для работы с API Telegram — Telethon. Её используют для парсинга информации из мессенджера, управления сообществами и создания ботов. У Telethon два больших преимущества: подробная документация и большая популярность в комьюнити. Работает библиотека тоже отлично 🙂

    Ограничения на парсинг данных из Telegram

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

    Канал. Если к каналу не подключены комментарии, то список пользователей можно спарсить только при выполнении следующих условий:

    • это ваш канал;
    • в нём более 200 подписчиков.

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

    Чат. Ограничений на парсинг нет. Главное — чтобы вы были участником этого чата. Если вас в нём нет и он закрыт, спарсить ничего не получится.

    Перейдём к написанию кода: получим данные для доступа к API Telegram и напишем парсер списка участников.

    Шаг 1

    Регистрируемся в разделе инструментов разработчика Telegram

    Для работы с API Telegram нам необходимо получить api_id и api_hash. Сделать это можно в разделе инструментов разработчика Telegram. Это обязательное действие не только при создании нашего бота, но и при создании любого бота или парсера, который задействует API мессенджера.

    Переходим по ссылке и авторизуемся, используя номер телефона, привязанный к вашему профилю в мессенджере. После авторизации необходимо выбрать пункт API development tools:

    В открывшейся форме заполняем пустые поля. Всё заполнять необязательно, главное — указать полное и краткое имя приложения:

    После нажатия Create application откроется страница, на которой нас интересует два параметра:

    Важно!

    Не отправляйте свои api-id и api-hash третьим лицам. Их могут использовать для работы с мессенджером от вашего имени.

    Шаг 2

    Импортируем библиотеки и запускаем клиент

    Для написания кода парсера мы будем использовать Visual Studio Code. Это стандартная IDE, которую можно заменить на любую другую — например, на PyCharm или онлайн-редактор типа Google Colab.

    Если вы никогда не работали на своём компьютере с Python, его будет необходимо установить. Сделать это проще всего по нашей инструкции.

    Теперь откроем вкладку «Терминал» в нашей IDE и установим библиотеку для парсинга данных:

    После входа в систему в папке с кодом появится файл .session. Это файл базы данных, который делает сессию постоянной, то есть как бы не даёт нам разлогиниться. База данных благодаря библиотеке Telethon создаётся автоматически (формат — SQLite) — в ней хранится информация о текущей сессии парсинга: хеш, IP-адрес, с которого она производится, время сессии и другие технические данные подключения.

    Шаг 3

    Получаем список каналов и чатов, доступных для парсинга

    Будем собирать информацию из чатов, на которые подписан пользователь. Это удобно, так как позволяет обращаться к ним, не указывая конкретный адрес, а выбирая из списка.

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

    Запустим файл main.py. Для этого напишем в терминале:

    Выберем любую группу, введя в терминал нужную цифру. В нашем случае это будет группа «Вастрик.ЗОЖ».

    Теперь мы видим текстовые сообщения, которые «зашивали» в код. И главное, понимаем, что парсинг прошёл удачно.

    Откроем нашу папку. В ней появился файл members.csv:

    Откроем его и посмотрим на содержимое:

    Всё получилось! В файле мы видим всех пользователей группы с указанием их юзернейма и имени, включающего также фамилию с дополнительными символами.

    Что дальше?

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

    Читайте также:

    • Чат-боты в Telegram на Python. Часть 1. Выбираем библиотеку и пишем первого бота
    • «Я удивился, когда написал код, а он заработал»: как живёт начинающий Python-разработчик
    • Упражнения в прекрасном: подключаемся к домашнему Wi-Fi без пароля

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *