@Banjiro

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

Привет, я не смог разобраться в документации пирограмма и не нашел как мне можно в лайве получать посты из канала в телеграмм. Буду крайне благодарен даже за подсказки или ссылки на доку
  • Вопрос задан
  • 5506 просмотров
Пригласить эксперта
Ответы на вопрос 2
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)
Ответ написан
4ymeiko
@4ymeiko
Подскажите, пожалуйста, каким образом можно обрабатывать таким образом сразу несколько каналов телеграм?

Согласно документации можно обрабатывать чаты в тг и передавать туда список, но вот с каналами, только
pyrogram.filters.channel = <pyrogram.filters.channel_filter object>


Не понимаю как не делать под каждый канал отдельный обработчик :(
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы