Извлекаем полезную информацию из Telegram на Python. Часть 2
Дополняю созданный ранее репозиторий со скриптами для сбора информации из Telegram еще несколькими примерами.
✏️ На этот раз пробуем выгружать и сохранять списки участников публичных каналов, групп, чатов, где состоит пользователь, учетные данные которого используются для работы с Telegram API.
Приведу здесь фрагменты исходного кода. Полная версия демонстрационного скрипта в репозитории.
1
2
3
4
5
6
7
8
9
# получаем список каналов, групп, чатов пользователя
result = await client(GetDialogsRequest(
offset_date=None,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=100,
hash = 0
))
print(result.chats)
1
2
3
# выгружаем список участников конкретного чата
users = await client.get_participants(chat)
print(users)
❗️ Если у пользователя недостаточно прав на получение информации об участниках какого-либо канала или группы, то будет выброшен Exception с соответствующей информацией.
✏️ В предыдущей статье рассматривал примеры поиска сообщений с определенным содержимым (фото, документы, аудио). В данном варианте представлен сбор информации не только о публичном канале и сообщениях в нем, но и о комментариях к каждому посту.
Также привожу фрагменты исходного кода. Полная версия в репозитории.
1
2
# информация о канале по его адресу или id
channel = await client.get_entity(url)
1
2
3
4
5
# выгрузка последних 10 постов канала
async for message in client.iter_messages(channel, limit=10):
# выгрузка всех комментариев к конкретному посту
async for comment in client.iter_messages(channel, reply_to=message.id):
print(comment.text)
