You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telethon使用iter_messages遍历频道时如何过滤机器人消息?

过滤Telethon频道消息中的机器人消息

你可以通过Message对象的sender属性来判断消息是否来自机器人——当sender是User类型时,它自带一个bot布尔字段,True表示是机器人,False则是普通用户。直接在遍历过程中加条件判断即可:

async def process_non_bot_messages(channel):
    async for message in client.iter_messages(channel):
        # 先确认消息发送者是用户账号,而非频道本身
        if message.sender and isinstance(message.sender, User):
            if not message.sender.bot:
                # 这里处理非机器人发送的消息
                print(f"非机器人消息:{message.text}")

注意点

  • 部分消息的sender可能为None,这类一般是频道自身发布的系统消息(比如频道名称变更通知),可根据需求决定是否保留
  • 不需要使用额外的过滤器,直接在遍历逻辑里做判断就能实现过滤

内容的提问来源于stack exchange,提问作者apeman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:55:19