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

如何使用Telethon从Telegram用户消息中提取JSON格式数据

你通过client.get_messages拿到的是Pyrogram库的原生Message对象,不需要解析打印出来的序列化字符串,直接读取对象属性即可拿到需要的所有内容。

1. 基础提取消息文本

# 从bot获取1条最新消息
messages = client.get_messages('bot_name', limit=1)
# 读取消息文本内容
target_msg = messages[0]
msg_content = target_msg.text
print(msg_content)

2. 结构化提取文本内的字段

可以用正则匹配把文本里的手机号、归属地等信息提取成结构化字典:

import re

# 定义字段匹配规则
field_rules = {
    "手机号": r"Номер: (\d+)",
    "国家": r"Страна: (.+)",
    "地区": r"Регион: (.+)",
    "运营商": r"Оператор: (.+)",
    "关联姓名": r"Возможные имена:\n└ (.+)",
    "姓名查询状态": r"ФИО: (.+)",
    "地址查询状态": r"Возможные адреса: (.+)",
    "VK查询状态": r"Вконтакте: (.+)",
    "出生日期查询状态": r"Дата рождения: (.+)",
    "Facebook查询状态": r"Facebook: (.+)",
    "Telegram查询状态": r"Telegram: (.+)",
    "Whatsapp状态": r"Whatsapp: (.+)",
    "Viber状态": r"Viber: (.+)",
    "关联广告数": r"Объявлений: (.+)",
    "查询过该信息的人数": r"Интересовались: (.+)",
    "声誉评分": r"Репутация: (.+)"
}

extract_result = {}
for field, rule in field_rules.items():
    match_res = re.search(rule, msg_content)
    if match_res:
        extract_result[field] = match_res.group(1).strip()

print(extract_result)

3. 提取消息内的Inline按钮内容

如果需要获取按钮的回调数据或者跳转链接,可以直接从reply_markup属性读取:

if hasattr(target_msg, 'reply_markup'):
    for row in target_msg.reply_markup.rows:
        for btn in row.buttons:
            btn_text = btn.text
            # 回调按钮读取data属性
            if hasattr(btn, 'data'):
                btn_callback = btn.data.decode("utf-8")
                print(f"按钮:{btn_text},回调参数:{btn_callback}")
            # 跳转按钮读取url属性
            elif hasattr(btn, 'url'):
                btn_url = btn.url
                print(f"按钮:{btn_text},跳转地址:{btn_url}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:30:00