如何从Telethon的NewMessage事件中仅提取所需的消息文本内容?
解决方案
你当前输出大量冗余信息的原因是直接打印了整个NewMessage.Event对象,该对象包含了消息ID、发送时间、所属渠道、交互统计等全量元数据,你需要的纯文本内容是该对象下的子属性。
调整方法
仅修改事件回调函数内的打印逻辑即可,两种提取方式可以按需选择:
- 如果你需要保留消息原本的格式标记(比如示例中的加粗
**标记),直接调用event.text属性 - 如果你需要完全去除格式,得到无任何标记的纯文本(比如仅拿到
SNXUSDT,不带前后的**),调用event.raw_text属性
修改后的完整代码
from telethon import TelegramClient, events, sync import config api_id = '****' api_hash = '****' client = TelegramClient('session_read', api_id, api_hash) @client.on(events.NewMessage) async def my_event_handler(event): # 提取无格式纯文本用下面这行 print(event.raw_text) # 如果需要保留格式标记就注释掉上一行,换成下面的代码 # print(event.text) client.start() client.run_until_disconnected()
内容的提问来源于stack exchange,提问作者ycrrr
相关产品推荐
相关产品推荐

