Ошибка при попытке спарсить закрытый чат Telegram

Коллеги из отдела маркетинга поставили задачу. Они состоят в тематических группах в Telegram, которые вручную просматривают на предмет упоминания бренда и продукции компании. Попросили написать парсер, который будет искать сообщения, содержащие определенные ключевые слова и подходящие сообщения пересылать в отдельную группу. Код представлен ниже:

from telethon.sync import TelegramClient, events
from datetime import date, timedelta
import datetime
import schedule
import time
import pandas as pd
import configparser
import json
import asyncio
import re

config = configparser.ConfigParser()
config.read("config.ini")

api_id   = config['Telegram']['api_id']
api_hash = config['Telegram']['api_hash']
username = config['Telegram']['username']

client = TelegramClient(username, api_id, api_hash, system_version='4.16.30-vxCUSTOM')
client.start()
print(client.get_me())

def time_now():
  current_time = datetime.datetime.now().time()
  current_hour = current_time.hour
  current_minute = current_time.minute
  time_now = f'{current_hour}:{current_minute}'
  return time_now

def parcer_chats():
  chats = ['https://t.me/SantehChat', 'https://t.me/chatmontazhnik', 'https://t.me/montazhchat']
  date_message = date.today() - timedelta(days=1)

  for chat in chats:
    part_mes= client.get_messages(chat, limit = 2000)

    for message in part_mes:
      if message.text:
        if re.search('(\s|\A)[Кк][Рр][Аа][Нн](\s|\Z|[^a-zA-Zа-ъА-Ъь-яЬ-Я0-9])', message.text) and message.date.date() == date_message or re.search('(\s|\A)[Шш][Аа][Рр][Оо][Вв][Ыы][Йй](\s|\Z|[^a-zA-Zа-яА-Я0-9])', message.text) and message.date.date() == date_message or re.search('(\s|\A)[Лл][Оо][Пп][Нн][Уу][Лл](\s|\Z|[^a-zA-Zа-яА-Я0-9])', message.text) and message.date.date() == date_message or re.search('(\s|\A)[Фф][Ии][Тт][Ии][Нн][Гг](\s|\Z|[^a-zA-Zа-зА-зй-яЙ-Я0-9])', message.text) and message.date.date() == date_message:
          client.send_message('https://t.me/my_chat', f'<a href={chat}>{message.chat.title}</a>', parse_mode = 'HTML')
          client.send_message('https://t.me/my_chat', str(message.date))
          message.forward_to('https://t.me/my_chat')
          client.send_message('https://t.me/my_chat', '-----------------------')

while True:
  if time_now() in ['7:00']:
    parcer_chats()
    time.sleep(60)

Код работает абсолютно корректно, но когда доходим до закрытой группы получаю сообщение в интерпретаторе:

Cannot find any entity corresponding to "https://t.me/c/1234567890"

Учетная запись, через которую происходит парсинг, является участником этой закрытой группы. Сбор информации происходит исключительно в мирных целях - выявлять упоминание о компании и вступать в диалог с участниками по возникшим вопросам. Одним словом, может кто-то подсказать как корректно парсить закрытый чат, может кто-то сталкивался?


Ответы (0 шт):