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

使用Telethon提取TG公开群用户仅能获取约90%成员问题咨询

问题原因
  • Telegram官方接口限制:普通用户账号拉取群成员时,平台默认有两个维度的过滤:一是隐私规则过滤,设置了「不让陌生人查看自己加入的群组」权限的用户,不会出现在非管理员拉取的成员列表中;二是规模限制,成员数超过5000的公开群,非管理员账号最多只能拉取到近期活跃的约80%-90%用户,10万以上成员的超级群,官方直接不开放全量成员拉取权限。
  • 反爬机制触发:你当前代码直接一次性拉取所有成员,速率过快时TG会自动截断返回结果,不会抛出报错,只会返回部分成员数据。
  • 账号权限不足:新注册、没有正常使用痕迹的账号,拉取成员的权限会被进一步收紧,返回的成员数量更少。
修复方案
  1. 优先使用目标群的管理员账号执行拉取,管理员账号不受普通用户的隐私过滤和规模限制,可以拉取到全量成员。
  2. 替换原有的一次性拉取成员逻辑,改为手动分页拉取,添加延迟避免触发反爬,修改代码如下:
    首先导入time模块:
import time

然后替换all_participants = client.get_participants(target_group, aggressive=True)这部分代码:

print('Fetching Members...')
all_participants = []
offset = 0
# 每次拉取200个,为TG接口允许的单次最大拉取量
limit = 200
while True:
    participants = client.get_participants(target_group, offset=offset, limit=limit)
    # 拉取不到新成员时终止循环
    if not participants:
        break
    all_participants.extend(participants)
    offset += limit
    # 每次拉取后停顿1秒,避免触发速率限制
    time.sleep(1)
  1. 避免使用新注册账号执行拉取,选择注册时间超过3个月、有正常聊天、加群记录的老号,拉取成功率更高。
  2. 如果目标群是10万成员以上的超级群,目前没有公开方案可以拉取全量成员,只能拿到平台返回的近期活跃用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 00:15:00