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

如何无需添加自有机器人即可用Python爬取Telegram频道消息?

无需机器人爬取Telegram消息的两种场景解决方案

一、无需使用机器人爬取Telegram消息(私人对话/普通群组)

  • 核心方案:使用Telethon库——这是基于Telegram MTProto协议的客户端库,支持通过个人Telegram账号直接认证,完全不需要依赖机器人Bot。
  • 操作步骤:
    1. 安装依赖库:pip install telethon
    2. 登录Telegram开发者平台,申请获取你的API ID和API Hash(用自己的Telegram账号即可注册申请)
    3. 示例代码:
      from telethon import TelegramClient, sync
      
      # 替换为你的API信息和自定义会话文件名
      api_id = 123456
      api_hash = "你的API Hash字符串"
      client = TelegramClient("my_telegram_session", api_id, api_hash)
      
      async def fetch_messages():
          # 替换为目标对话/群组的username或ID
          async for msg in client.iter_messages("target_username_or_id"):
              print(msg.text)
      
      with client:
          client.loop.run_until_complete(fetch_messages())
      
    4. 首次运行会要求输入你的Telegram手机号和验证码,验证成功后生成会话文件,后续无需重复验证。

二、无需添加自有机器人到频道,爬取Telegram频道消息

  • 前提:目标频道为公开频道,或你使用的Telegram账号已加入该私有频道(非公开频道需账号有权限访问)。同样用Telethon即可实现,不需要机器人加入频道。
  • 操作步骤:
    1. 安装依赖库:pip install telethon
    2. 准备好你的API ID和API Hash(同上)
    3. 示例代码:
      from telethon import TelegramClient
      
      api_id = 123456
      api_hash = "你的API Hash字符串"
      client = TelegramClient("channel_scrape_session", api_id, api_hash)
      
      async def scrape_channel_content():
          # 替换为目标频道的username(公开频道通常为@xxx格式)
          channel = await client.get_entity("@public_channel_username")
          # 爬取最近100条消息,可修改limit参数调整数量
          async for msg in client.iter_messages(channel, limit=100):
              print(f"发布时间: {msg.date}\n内容: {msg.text}\n---")
      
      with client:
          client.loop.run_until_complete(scrape_channel_content())
      
  • 注意:私有频道需确保你的账号已加入,否则无法获取内容;公开频道无需加入,直接通过username即可访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:20:52