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

如何用Python获取Telegram频道(非群组)的新消息?

如何用Python监听Telegram频道新消息

一、Telethon 可行监听代码示例

你之前的代码是拉取历史消息,并非实时监听新消息,同时可能存在参数类型错误、未完成登录流程等问题。下面是监听公开频道新消息的最简可用代码:

from telethon import TelegramClient, events
import asyncio

# 替换为你自己的api_id和api_hash
api_id = 123456  # 注意这里是整数类型,不要用字符串
api_hash = "你的api_hash字符串"
client = TelegramClient('channel_listener', api_id, api_hash)

# 监听目标频道的新消息
@client.on(events.NewMessage(chats='DEXTNewPairsPolygon'))
async def on_new_message(event):
    sender = await event.get_sender()
    print(f"发送者用户名: {sender.username if sender else '未知'}")
    print(f"消息内容: {event.message.text}")
    print('----------------------------------------')

async def main():
    await client.start()  # 首次运行会提示输入手机号和验证码完成登录
    await client.run_until_disconnected()

if __name__ == '__main__':
    asyncio.run(main())

关键注意事项

  • api_id 必须是整数,你之前的代码写成字符串可能引发错误
  • 首次运行会触发登录流程,完成后生成channel_listener.session文件,后续运行无需重复验证
  • 只要目标频道是公开可访问的,无需管理员权限即可监听新消息

二、有没有比Telethon更合适的库?

Python生态中适合该需求的主流库有两个:

  • Pyrogram:和Telethon功能对等,API设计更简洁直观,同样支持无需管理员权限监听公开频道,适合偏好简洁语法的场景
  • python-telegram-bot:主打Telegram机器人开发,需要将机器人加入目标频道才能监听,如果你不是频道管理员,大概率无法添加机器人,因此不适合你的需求

综上,Telethon或Pyrogram都是合适的选择,二者都能满足你的核心需求,具体可根据个人API风格偏好选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:27:34