Python 3.x 有没有一种方法可以更快地从频道下载信息?

Python 3.x 有没有一种方法可以更快地从频道下载信息?,python-3.x,telethon,Python 3.x,Telethon,我从一个有两百万条消息的频道下载所有消息,最初的几条5K消息下载速度很快,但我假设电报确实在他们这方面起了节流作用。有没有一种方法可以改进这一点,这样就不用花很多时间?这是我写的一个类,它可以很好地处理带有几千条消息的频道 class TelegramMessages(TelegramSession): def __init__(self): super().__init__() self.msg_json_path = os.path.join(

我从一个有两百万条消息的频道下载所有消息,最初的几条5K消息下载速度很快,但我假设电报确实在他们这方面起了节流作用。有没有一种方法可以改进这一点,这样就不用花很多时间?这是我写的一个类,它可以很好地处理带有几千条消息的频道

class TelegramMessages(TelegramSession):
    def __init__(self):
        super().__init__()
        self.msg_json_path = os.path.join(
            self.telegram_data_path, self.group + '_group_messages' + '.json')

    def write_messages_to_file(self, msg_list):
        with open(self.msg_json_path, 'w') as file:
            file.write(json.dumps(msg_list, indent=4, sort_keys=True, default=str, ensure_ascii=False))

    async def get_msg_list(self):

        self.logging.info(
            'Downloading message list from Telegram channel ...' + self.group)

        msg_list = []

        async for message in self.client.iter_messages(self.group):
            try:

                msg_dict = message.to_dict()
                msg_list.append(msg_dict)
                self.write_messages_to_file(msg_list)

            except AttributeError as a_error:
                self.logging.warning(
                    str(a_error) + '<-- found missing data in message')
               

    def trigger_message_loop(self):
        if os.path.isfile(self.msg_json_path):

            self.logging.info('JSON message file is already here,skipping')
            pass

        else:
            self.client = TelegramClient(
                self.full_session_path, self.api_id, self.api_hash)
            self.client.start(self.phone_number)
            loop = asyncio.get_event_loop()
            loop.run_until_complete((self.get_msg_list()))
            self.client._disconnect()
类电报信息(电报会话):
定义初始化(自):
super()。\uuuu init\uuuuu()
self.msg_json_path=os.path.join(
self.telegram_数据_路径,self.group+'_group_消息'+'.json')
def将消息写入文件(自我、消息列表):
打开(self.msg_json_路径'w')作为文件:
write(json.dumps(msg_list,indent=4,sort_keys=True,default=str,sure_ascii=False))
异步def get_msg_列表(自身):
self.logging.info(
“正在从电报频道下载消息列表…”+self.group)
msg_list=[]
self.client.iter_消息(self.group)中消息的异步:
尝试:
msg_dict=message.to_dict()
msg\u list.append(msg\u dict)
self.write_messages_到_文件(msg_列表)
除AttributeError作为错误外:
自我警告(

str(a_error)+“是的,电报限制了每个请求。你可能想做一个。谢谢,我刚刚实现了它,现在它工作得更好。是的,电报限制了每个请求。你可能想做一个。谢谢,我刚刚实现了它,现在它工作得更好。”