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

使用Telethon爬取Telegram时如何获取位置共享消息的经纬度

你使用的是Telethon库实现Telegram数据爬取,提取位置共享消息的经纬度可按如下逻辑实现:
Telegram的位置共享消息分为单次静态位置和实时共享位置两类,均存储在消息的media属性中,两类消息的geo属性下都包含经纬度字段。

实现代码

首先先引入对应消息类型:

from telethon.tl.types import MessageMediaGeo, MessageMediaGeoLive

修改遍历逻辑如下:

for message in client.iter_messages('John'):
    # 判断是否为位置共享消息
    if isinstance(message.media, (MessageMediaGeo, MessageMediaGeoLive)):
        # 提取经纬度
        lat = message.media.geo.lat
        lon = message.media.geo.long
        print(f"位置消息:纬度 {lat},经度 {lon}")
    else:
        # 非位置消息走原有文本打印逻辑
        print(message.text)

补充说明

  • 若无需处理实时共享位置,仅需提取用户主动发送的单次静态位置,可将判断条件中的MessageMediaGeoLive删除即可
  • 如果你使用的Telethon版本较旧出现属性报错,可直接打印message.media查看返回结构,对应调整字段名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 00:18:03