电报获取聊天消息/帖子-Python Telethon

发布于 2021-01-29 16:28:15

我正在使用Telethon和Python 3.6xx

能够从组中检索消息,没问题,但是当涉及到渠道时,我会陷入困境。

dialogs = client(get_dialogs)
for chat in dialogs.chats:
   getmessage = client.get_messages(chat.id, limit=400)
   for message in getmessage:
        print(message.message)

我已经搜索了telethon文档,但是大多数答案都是针对旧版本的get_message_history

当我尝试以下内容chat.id = 1097988869(news.bitcoin.com)时,出现以下错误(对于组而言,chat.id工作正常):

PeerIdInvalidError:使用了无效的Peer。确保传递正确的对等类型

关注者
0
被浏览
284
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    更新:

    在新版本的Telethon中,@ Lonami答案是最好的并使用它。

    #########################################

    您可以使用此代码获取消息:

    client = TelegramClient('session_name',
                        api_id,
                        api_hash,
                        update_workers=1,
                        spawn_read_thread=False)
    assert client.connect()
    if not client.is_user_authorized():
        client.send_code_request(phone_number)
        me = client.sign_in(phone_number, input('Enter code: '))
    
    channel_username='tehrandb' # your channel
    channel_entity=client.get_entity(channel_username)
    posts = client(GetHistoryRequest(
        peer=channel_entity,
        limit=100,
        offset_date=None,
        offset_id=0,
        max_id=0,
        min_id=0,
        add_offset=0,
        hash=0))
    # messages stored in `posts.messages`
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看