• Как парсить посты телеграм с помощью pyrogram?

    drygdryg
    @drygdryg
    Python-разработчик
    Сначала требуется узнать ID целевого канала. Это можно сделать, используя сторонние клиенты Телеграма (Котатограм для ПК или Graph для Android, к примеру).
    Затем написать вот такой обработчик сообщений, который будет реагировать только на сообщения с канала, ID которого задан переменной CHANNEL_ID:
    from pyrogram import Client
    from pyrogram import types, filters
    
    
    CHANNEL_ID = -11012345678
    
    app = Client(
        "my_account",
        api_id=12345,
        api_hash="0123456789abcdef0123456789abcdef"
    )
    
    
    @app.on_message(filters=filters.channel)
    def my_handler(client: Client, message: types.Message):
        if message.chat.id != CHANNEL_ID:
            return
        print("Получено новое сообщение с ID", message.message_id)
        # Как-то обработать сообщение с канала, например, напечатать его текст
        print("Текст:", message.text)
    
    
    app.run()

    Здесь можно посмотреть описание объекта Message, чтобы работать с ним в дальнейшем: https://docs.pyrogram.org/api/types/Message#pyrogr...
    Также можно исключить события редактирования сообщений (получение отредактированных сообщений с канала), для этого нужно передать в декоратор следующие фильтры:
    @app.on_message(filters=filters.channel & ~filters.edited)
    Ответ написан
    5 комментариев