Скрипт Парсер сообщений из Telegram по ключевым словам

Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
По просьбе человека из чата югейма делюсь с вами небольшим парсером сообщений из чатов в Telegram. Бот обладает достаточной скоростью работы и очень легко может быть автоматизирован под нужды разработчика. Также имеется поддержка изменения ключевых слов для парсинга, количества просматриваемых сообщений и сохранение сессии пользователя. Все настройки хранятся в файле settings.ini.

Скрипт работает за счет библиотеки telethon, которая используется для создания юзер ботов. Поэтому перед началом использования нужно будет зарегистрировать новое приложение в инструментах разработчика Telegram. Лк доступен по
Пожалуйста, авторизуйтесь для просмотра ссылки.
ссылке. В файл настроек необходимо вписать полученные App api_id и App api_hash, а также имя пользователя юзер бота для авторизации и дальнейшей работы.

На выходе вы получаете файл channel_messages.json, где представлены данные всех сообщений, подошедших по ключевым словам. Для работы с подобным ответом можно использовать приведенный ниже класс, полученный мной с помощью генератора классов JSON от Xamasoft.
C#:
// Generated by Xamasoft JSON Class Generator
// http://www.xamasoft.com/json-class-generator

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace ParserBot
{

    public class PeerId
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("channel_id")]
        public int ChannelId { get; set; }
    }

    public class Entity
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("offset")]
        public int Offset { get; set; }

        [JsonProperty("length")]
        public int Length { get; set; }

        [JsonProperty("language")]
        public string Language { get; set; }
    }

    public class RecentReplier
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("user_id")]
        public int UserId { get; set; }
    }

    public class Replies
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("replies")]
        public int Replies { get; set; }

        [JsonProperty("replies_pts")]
        public int RepliesPts { get; set; }

        [JsonProperty("comments")]
        public bool Comments { get; set; }

        [JsonProperty("recent_repliers")]
        public IList<RecentReplier> RecentRepliers { get; set; }

        [JsonProperty("channel_id")]
        public int ChannelId { get; set; }

        [JsonProperty("max_id")]
        public int MaxId { get; set; }

        [JsonProperty("read_max_id")]
        public object ReadMaxId { get; set; }
    }

    public class Messages
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("id")]
        public int Id { get; set; }

        [JsonProperty("peer_id")]
        public PeerId PeerId { get; set; }

        [JsonProperty("date")]
        public string Date { get; set; }

        [JsonProperty("message")]
        public string Message { get; set; }

        [JsonProperty("out")]
        public bool Out { get; set; }

        [JsonProperty("mentioned")]
        public bool Mentioned { get; set; }

        [JsonProperty("media_unread")]
        public bool MediaUnread { get; set; }

        [JsonProperty("silent")]
        public bool Silent { get; set; }

        [JsonProperty("post")]
        public bool Post { get; set; }

        [JsonProperty("from_scheduled")]
        public bool FromScheduled { get; set; }

        [JsonProperty("legacy")]
        public bool Legacy { get; set; }

        [JsonProperty("edit_hide")]
        public bool EditHide { get; set; }

        [JsonProperty("pinned")]
        public bool Pinned { get; set; }

        [JsonProperty("from_id")]
        public object FromId { get; set; }

        [JsonProperty("fwd_from")]
        public object FwdFrom { get; set; }

        [JsonProperty("via_bot_id")]
        public object ViaBotId { get; set; }

        [JsonProperty("reply_to")]
        public object ReplyTo { get; set; }

        [JsonProperty("media")]
        public object Media { get; set; }

        [JsonProperty("reply_markup")]
        public object ReplyMarkup { get; set; }

        [JsonProperty("entities")]
        public IList<Entity> Entities { get; set; }

        [JsonProperty("views")]
        public int Views { get; set; }

        [JsonProperty("forwards")]
        public int Forwards { get; set; }

        [JsonProperty("replies")]
        public Replies Replies { get; set; }

        [JsonProperty("edit_date")]
        public object EditDate { get; set; }

        [JsonProperty("post_author")]
        public string PostAuthor { get; set; }

        [JsonProperty("grouped_id")]
        public object GroupedId { get; set; }

        [JsonProperty("restriction_reason")]
        public IList<object> RestrictionReason { get; set; }
    }

}

Скачать исходный код парсера на Python вместе с небольшим пресетом настроек можно с Яндекс.Диска:
Пожалуйста, авторизуйтесь для просмотра ссылки.

Credits: @matyushkin
 
По вопросам рекламы/сотрудничества: @kissme_milash
Забаненный
Статус
Оффлайн
Регистрация
19 Май 2019
Сообщения
174
Реакции[?]
34
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
енто для меня :) Спасиба добрый одмин :roflanEbalo:
 
Забаненный
Статус
Оффлайн
Регистрация
16 Сен 2020
Сообщения
38
Реакции[?]
4
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
По просьбе человека из чата югейма делюсь с вами небольшим парсером сообщений из чатов в Telegram. Бот обладает достаточной скоростью работы и очень легко может быть автоматизирован под нужды разработчика. Также имеется поддержка изменения ключевых слов для парсинга, количества просматриваемых сообщений и сохранение сессии пользователя. Все настройки хранятся в файле settings.ini.

Скрипт работает за счет библиотеки telethon, которая используется для создания юзер ботов. Поэтому перед началом использования нужно будет зарегистрировать новое приложение в инструментах разработчика Telegram. Лк доступен по
Пожалуйста, авторизуйтесь для просмотра ссылки.
ссылке. В файл настроек необходимо вписать полученные App api_id и App api_hash, а также имя пользователя юзер бота для авторизации и дальнейшей работы.

На выходе вы получаете файл channel_messages.json, где представлены данные всех сообщений, подошедших по ключевым словам. Для работы с подобным ответом можно использовать приведенный ниже класс, полученный мной с помощью генератора классов JSON от Xamasoft.
C#:
// Generated by Xamasoft JSON Class Generator
// http://www.xamasoft.com/json-class-generator

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace ParserBot
{

    public class PeerId
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("channel_id")]
        public int ChannelId { get; set; }
    }

    public class Entity
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("offset")]
        public int Offset { get; set; }

        [JsonProperty("length")]
        public int Length { get; set; }

        [JsonProperty("language")]
        public string Language { get; set; }
    }

    public class RecentReplier
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("user_id")]
        public int UserId { get; set; }
    }

    public class Replies
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("replies")]
        public int Replies { get; set; }

        [JsonProperty("replies_pts")]
        public int RepliesPts { get; set; }

        [JsonProperty("comments")]
        public bool Comments { get; set; }

        [JsonProperty("recent_repliers")]
        public IList<RecentReplier> RecentRepliers { get; set; }

        [JsonProperty("channel_id")]
        public int ChannelId { get; set; }

        [JsonProperty("max_id")]
        public int MaxId { get; set; }

        [JsonProperty("read_max_id")]
        public object ReadMaxId { get; set; }
    }

    public class Messages
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("id")]
        public int Id { get; set; }

        [JsonProperty("peer_id")]
        public PeerId PeerId { get; set; }

        [JsonProperty("date")]
        public string Date { get; set; }

        [JsonProperty("message")]
        public string Message { get; set; }

        [JsonProperty("out")]
        public bool Out { get; set; }

        [JsonProperty("mentioned")]
        public bool Mentioned { get; set; }

        [JsonProperty("media_unread")]
        public bool MediaUnread { get; set; }

        [JsonProperty("silent")]
        public bool Silent { get; set; }

        [JsonProperty("post")]
        public bool Post { get; set; }

        [JsonProperty("from_scheduled")]
        public bool FromScheduled { get; set; }

        [JsonProperty("legacy")]
        public bool Legacy { get; set; }

        [JsonProperty("edit_hide")]
        public bool EditHide { get; set; }

        [JsonProperty("pinned")]
        public bool Pinned { get; set; }

        [JsonProperty("from_id")]
        public object FromId { get; set; }

        [JsonProperty("fwd_from")]
        public object FwdFrom { get; set; }

        [JsonProperty("via_bot_id")]
        public object ViaBotId { get; set; }

        [JsonProperty("reply_to")]
        public object ReplyTo { get; set; }

        [JsonProperty("media")]
        public object Media { get; set; }

        [JsonProperty("reply_markup")]
        public object ReplyMarkup { get; set; }

        [JsonProperty("entities")]
        public IList<Entity> Entities { get; set; }

        [JsonProperty("views")]
        public int Views { get; set; }

        [JsonProperty("forwards")]
        public int Forwards { get; set; }

        [JsonProperty("replies")]
        public Replies Replies { get; set; }

        [JsonProperty("edit_date")]
        public object EditDate { get; set; }

        [JsonProperty("post_author")]
        public string PostAuthor { get; set; }

        [JsonProperty("grouped_id")]
        public object GroupedId { get; set; }

        [JsonProperty("restriction_reason")]
        public IList<object> RestrictionReason { get; set; }
    }

}

Скачать исходный код парсера на Python вместе с небольшим пресетом настроек можно с Яндекс.Диска:
Пожалуйста, авторизуйтесь для просмотра ссылки.

Credits: @matyushkin
Спасибо.
 
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,334
Реакции[?]
428
Поинты[?]
96K
По просьбе человека из чата югейма делюсь с вами небольшим парсером сообщений из чатов в Telegram. Бот обладает достаточной скоростью работы и очень легко может быть автоматизирован под нужды разработчика. Также имеется поддержка изменения ключевых слов для парсинга, количества просматриваемых сообщений и сохранение сессии пользователя. Все настройки хранятся в файле settings.ini.

Скрипт работает за счет библиотеки telethon, которая используется для создания юзер ботов. Поэтому перед началом использования нужно будет зарегистрировать новое приложение в инструментах разработчика Telegram. Лк доступен по
Пожалуйста, авторизуйтесь для просмотра ссылки.
ссылке. В файл настроек необходимо вписать полученные App api_id и App api_hash, а также имя пользователя юзер бота для авторизации и дальнейшей работы.

На выходе вы получаете файл channel_messages.json, где представлены данные всех сообщений, подошедших по ключевым словам. Для работы с подобным ответом можно использовать приведенный ниже класс, полученный мной с помощью генератора классов JSON от Xamasoft.
C#:
// Generated by Xamasoft JSON Class Generator
// http://www.xamasoft.com/json-class-generator

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace ParserBot
{

    public class PeerId
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("channel_id")]
        public int ChannelId { get; set; }
    }

    public class Entity
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("offset")]
        public int Offset { get; set; }

        [JsonProperty("length")]
        public int Length { get; set; }

        [JsonProperty("language")]
        public string Language { get; set; }
    }

    public class RecentReplier
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("user_id")]
        public int UserId { get; set; }
    }

    public class Replies
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("replies")]
        public int Replies { get; set; }

        [JsonProperty("replies_pts")]
        public int RepliesPts { get; set; }

        [JsonProperty("comments")]
        public bool Comments { get; set; }

        [JsonProperty("recent_repliers")]
        public IList<RecentReplier> RecentRepliers { get; set; }

        [JsonProperty("channel_id")]
        public int ChannelId { get; set; }

        [JsonProperty("max_id")]
        public int MaxId { get; set; }

        [JsonProperty("read_max_id")]
        public object ReadMaxId { get; set; }
    }

    public class Messages
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("id")]
        public int Id { get; set; }

        [JsonProperty("peer_id")]
        public PeerId PeerId { get; set; }

        [JsonProperty("date")]
        public string Date { get; set; }

        [JsonProperty("message")]
        public string Message { get; set; }

        [JsonProperty("out")]
        public bool Out { get; set; }

        [JsonProperty("mentioned")]
        public bool Mentioned { get; set; }

        [JsonProperty("media_unread")]
        public bool MediaUnread { get; set; }

        [JsonProperty("silent")]
        public bool Silent { get; set; }

        [JsonProperty("post")]
        public bool Post { get; set; }

        [JsonProperty("from_scheduled")]
        public bool FromScheduled { get; set; }

        [JsonProperty("legacy")]
        public bool Legacy { get; set; }

        [JsonProperty("edit_hide")]
        public bool EditHide { get; set; }

        [JsonProperty("pinned")]
        public bool Pinned { get; set; }

        [JsonProperty("from_id")]
        public object FromId { get; set; }

        [JsonProperty("fwd_from")]
        public object FwdFrom { get; set; }

        [JsonProperty("via_bot_id")]
        public object ViaBotId { get; set; }

        [JsonProperty("reply_to")]
        public object ReplyTo { get; set; }

        [JsonProperty("media")]
        public object Media { get; set; }

        [JsonProperty("reply_markup")]
        public object ReplyMarkup { get; set; }

        [JsonProperty("entities")]
        public IList<Entity> Entities { get; set; }

        [JsonProperty("views")]
        public int Views { get; set; }

        [JsonProperty("forwards")]
        public int Forwards { get; set; }

        [JsonProperty("replies")]
        public Replies Replies { get; set; }

        [JsonProperty("edit_date")]
        public object EditDate { get; set; }

        [JsonProperty("post_author")]
        public string PostAuthor { get; set; }

        [JsonProperty("grouped_id")]
        public object GroupedId { get; set; }

        [JsonProperty("restriction_reason")]
        public IList<object> RestrictionReason { get; set; }
    }

}

Скачать исходный код парсера на Python вместе с небольшим пресетом настроек можно с Яндекс.Диска:
Пожалуйста, авторизуйтесь для просмотра ссылки.

Credits: @matyushkin
ого, да мы с одного сурса пастили :roflanEbalo:
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
ого, да мы с одного сурса пастили :roflanEbalo:
Ну да, я код из той же темы брал, только изменил немного для удобства использования. Больше не публикуй материал, если уже есть подобный на форуме
 
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,334
Реакции[?]
428
Поинты[?]
96K
Ну да, я код из той же темы брал, только изменил немного для удобства использования. Больше не публикуй материал, если уже есть подобный на форуме
ну я там еще несколько улучшений сделал - сделал приятные логи в консоль, выбор канала в кфг, код читается легко за счет своей простоты и принтов
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
ну я там еще несколько улучшений сделал - сделал приятные логи в консоль, выбор канала в кфг, код читается легко за счет своей простоты и принтов
Я сделал чуть-ли не то же самое XD
 
Новичок
Статус
Оффлайн
Регистрация
31 Май 2024
Сообщения
1
Реакции[?]
0
Поинты[?]
0
По просьбе человека из чата югейма делюсь с вами небольшим парсером сообщений из чатов в Telegram. Бот обладает достаточной скоростью работы и очень легко может быть автоматизирован под нужды разработчика. Также имеется поддержка изменения ключевых слов для парсинга, количества просматриваемых сообщений и сохранение сессии пользователя. Все настройки хранятся в файле settings.ini.

Скрипт работает за счет библиотеки telethon, которая используется для создания юзер ботов. Поэтому перед началом использования нужно будет зарегистрировать новое приложение в инструментах разработчика Telegram. Лк доступен по
Пожалуйста, авторизуйтесь для просмотра ссылки.
ссылке. В файл настроек необходимо вписать полученные App api_id и App api_hash, а также имя пользователя юзер бота для авторизации и дальнейшей работы.

На выходе вы получаете файл channel_messages.json, где представлены данные всех сообщений, подошедших по ключевым словам. Для работы с подобным ответом можно использовать приведенный ниже класс, полученный мной с помощью генератора классов JSON от Xamasoft.
C#:
// Generated by Xamasoft JSON Class Generator
// http://www.xamasoft.com/json-class-generator

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace ParserBot
{

    public class PeerId
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("channel_id")]
        public int ChannelId { get; set; }
    }

    public class Entity
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("offset")]
        public int Offset { get; set; }

        [JsonProperty("length")]
        public int Length { get; set; }

        [JsonProperty("language")]
        public string Language { get; set; }
    }

    public class RecentReplier
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("user_id")]
        public int UserId { get; set; }
    }

    public class Replies
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("replies")]
        public int Replies { get; set; }

        [JsonProperty("replies_pts")]
        public int RepliesPts { get; set; }

        [JsonProperty("comments")]
        public bool Comments { get; set; }

        [JsonProperty("recent_repliers")]
        public IList<RecentReplier> RecentRepliers { get; set; }

        [JsonProperty("channel_id")]
        public int ChannelId { get; set; }

        [JsonProperty("max_id")]
        public int MaxId { get; set; }

        [JsonProperty("read_max_id")]
        public object ReadMaxId { get; set; }
    }

    public class Messages
    {

        [JsonProperty("_")]
        public string _ { get; set; }

        [JsonProperty("id")]
        public int Id { get; set; }

        [JsonProperty("peer_id")]
        public PeerId PeerId { get; set; }

        [JsonProperty("date")]
        public string Date { get; set; }

        [JsonProperty("message")]
        public string Message { get; set; }

        [JsonProperty("out")]
        public bool Out { get; set; }

        [JsonProperty("mentioned")]
        public bool Mentioned { get; set; }

        [JsonProperty("media_unread")]
        public bool MediaUnread { get; set; }

        [JsonProperty("silent")]
        public bool Silent { get; set; }

        [JsonProperty("post")]
        public bool Post { get; set; }

        [JsonProperty("from_scheduled")]
        public bool FromScheduled { get; set; }

        [JsonProperty("legacy")]
        public bool Legacy { get; set; }

        [JsonProperty("edit_hide")]
        public bool EditHide { get; set; }

        [JsonProperty("pinned")]
        public bool Pinned { get; set; }

        [JsonProperty("from_id")]
        public object FromId { get; set; }

        [JsonProperty("fwd_from")]
        public object FwdFrom { get; set; }

        [JsonProperty("via_bot_id")]
        public object ViaBotId { get; set; }

        [JsonProperty("reply_to")]
        public object ReplyTo { get; set; }

        [JsonProperty("media")]
        public object Media { get; set; }

        [JsonProperty("reply_markup")]
        public object ReplyMarkup { get; set; }

        [JsonProperty("entities")]
        public IList<Entity> Entities { get; set; }

        [JsonProperty("views")]
        public int Views { get; set; }

        [JsonProperty("forwards")]
        public int Forwards { get; set; }

        [JsonProperty("replies")]
        public Replies Replies { get; set; }

        [JsonProperty("edit_date")]
        public object EditDate { get; set; }

        [JsonProperty("post_author")]
        public string PostAuthor { get; set; }

        [JsonProperty("grouped_id")]
        public object GroupedId { get; set; }

        [JsonProperty("restriction_reason")]
        public IList<object> RestrictionReason { get; set; }
    }

}

Скачать исходный код парсера на Python вместе с небольшим пресетом настроек можно с Яндекс.Диска:
Пожалуйста, авторизуйтесь для просмотра ссылки.

Credits: @matyushkin
Приветсвую! А каким образом нужно доработать софт, чтобы софт регулярно с определённым заданным таймингом парсил целевые сообщения из выбранных телеграм-чатов и комментарии из телеграм-каналов (комментарии из каналов - второстепенно, не так важно) и не скидывал их всем скопом в файл, а чтобы пересылал в отдельный чат с ботом, через которого можно было бы переходить в ЛС к пользователям, которые и написали целевые сообщение, обнаруженные парсером? Насколько сложно это будет реализовать и сколько вообще это примерно будет стоить?
 
Сверху Снизу