Проверить, открыты ли комментарии к постам в каналах Telegram с помощью библиотеки telethon
Проблема заключается в том, что я хочу пропарсить каналы по ключевым словам и получить данные о том, можно ли оставлять комментарии под постом или нет, в виде Excel файла.
# Фильтрация и обработка каналов
for dialog in dialogs:
if isinstance(dialog, Channel) or isinstance(dialog, Chat):
title = dialog.title
participants_count = dialog.participants_count
# Проверка ключевых слов
for keyword in keywords:
if keyword.lower() in title.lower():
# Получение информации о последних постах
messages = client.get_messages(dialog, limit=2)
if len(messages) >= 2:
views_previous = messages[0].views
views_latest = messages[1].views
else:
views_previous = 0
views_latest = 0
# Проверка возможности комментирования
can_comment = dialog.megagroup or (not dialog.broadcast and not dialog.restricted)
# Формирование ссылки на канал или группу
if isinstance(dialog, Channel):
link = f'https://t.me/{dialog.username}'
else:
link = f'https://t.me/c/{dialog.id}/{dialog.access_hash}'
# Добавление данных в Excel
sheet.append([title, 'Канал' if isinstance(dialog, Channel) else 'Группа',
link, participants_count,
views_previous, views_latest, 'Да' if can_comment else 'Нет'])
break
# Сохранение Excel-файла
wb.save('channels.xlsx')
Опять же повторюсь, что проблема заключается в том, что код реагирует только на чаты и определяет только для них, что доступна отправка сообщений, но он не видит возможность отправки сообщений под постами в Telegram каналах.
На скриншоте ниже можно заметить, как парсер указывает только Чаты как каналы, в которых можно отправлять сообщения.
Импортированные библиотеки:
import openpyxl
from telethon.sync import TelegramClient
from telethon.tl.types import Channel, Chat, InputPeerEmpty
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.errors import SessionPasswordNeededError
Создание Exсel-файла:
# Создание эксель-файла и заголовков столбцов
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(['Название канала', 'Тип', 'Ссылка на канал', 'Количество участников',
'Просмотры под предпоследним постом', 'Просмотры под последним постом', 'Можно комментировать'])