Перейти к основному содержимому

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

Telegram

Обзор парсера

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

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

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

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

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

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

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

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

Запросы

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

https://t.me/a_parser

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

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

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

Формат результата:

$user_name($user_link): $message_text\n

Пример результата:

(https://t.me/aparser): Чтобы обходить ограничение на 10 запросов с одного IP нужно дополнительно парсить key= с основной страницы
(https://t.me/aparser): Сейчас посмотрю
(https://t.me/aparser): <a href="http://a-parser.com/threads/1795/" target="_blank" rel="noopener">http://a-parser.com/threads/1795/</a>

Вывод в таблицу CSV

Формат результата:

[% tools.CSVline(query, user_link, message_date, message_text) %]

Пример результата:

https://t.me/a_parser,https://t.me/Forby403,2016-11-05T05:01:09+00:00,"Настройки - Сохранять размер окна"
https://t.me/a_parser,https://t.me/Forby403,2016-11-05T05:14:47+00:00,"я запускаю 20 заданий по 300 потоков, с динамическим лимитов в 1200, они выполняются гораздо быстрее за счет того работают все одновременно и нет затыков когда осталось мало запросов(потоков)"
https://t.me/a_parser,https://t.me/Forby403,2016-11-05T05:27:06+00:00,"ну прокси в т.ч."

Обработка результатов

A-Parser позволяет обрабатывать результаты непосредственно во время парсинга, в этом разделе мы привели наиболее популярные кейсы для парсера Telegram

Фильтрация результатов по вхождению слов в сообщение

Пример

Необходимо добавить фильтр и выбрать в выпадающем списке $message_text - Message text. Выбрать тип Регулярка совпадает. В поле для регулярки вписать регулярку с необходимыми словами:

\bпарсер\b|\bGoogle\b|\byandex\b|\bпарсер\b|\bПрокси\b|\bДорки\b

\b - граница слова

| - ИЛИ

is - флаг регулякри

Скачать пример

Как импортировать пример в А-Парсер

eJyVVN1v2jAQ/18sHjaJ8qFSacobRaLaxEpX6BOg6oovqVfH9myHgTL+952dkMC6
PewhVu53v/v2uWQe3Jt7sOjQO5asSmbiP0uYR4mZhfyK6+0V7iE3ElmXGbAObeCu
2LKmJMmd1YVZbC0YtETimEIhPeuWzB8MkrdUSB9V5D5oEpajc5Dhs8c9EWvCsmJb
zMFvXwnegSwCsl6/rIvB6DqN5yCco+ocRuSmRtYvv+i70zqTWAsHUBz3tfAfToIw
TFvSNcYTzgw+nVNHLak2gIZElWjjhVZUinDsuNmcOuGm2lKxhHfMsFd3v1EuYIdL
XfUPW3hK0j3koTEdDh6DtpdGRx8+9nxsKHAuQkSQVYQwsjbqkxI/YmOVJi79WoFu
anUeJx8dBPBwym7FOlFm5KKItt8qG5akIB12maNUp0CJ8D81ggYLXtt57ADhJdNq
LOUMdyhbWvR/WwjJ6X6NUzL6XBv+nTJ/5+PYlHceaof2p6UcGi9Rup1/ba24numM
KudhUFLkwpPsJrpQYTADAt8QTdOz+9CzXFtswnhbYBOc1smg4kRsJzY2LXRRxcVU
LsGtVqnI5pS/FRxPzEItaWfnaqLDRoayVCElTcXhY3s7xq6eQhCayt8ZT2KIUPlp
Y5nXWroviypVYwXdvpuQYE6NPI9au9yClE+Ps3MNa28UCa/eG5f0+76XYx+eq/eD
BUOPmaYbRWUdN83D0rxF5b+el6Q80si+u4fKIBQY6IRRp1zcseHxN9yRrow=

Возможные настройки

ПараметрЗначение по умолчаниюОписание
Max empty posts1000Этот параметр указывает сколько подряд должно быть пустых (несуществующих) сообщений, чтобы парсинг по текущему запросу остановился
Start message number1Этот параметр указывает с какого номера собирать сообщения в телеграм чате