怎么判断你的推特粉丝里哪些是机器人

16 min readSocialAPI 工程团队

怎么判断你的推特粉丝里哪些是机器人

你的粉丝数涨了。别的什么都没涨 —— 点赞一样、回复一样、触达一样。

这个落差是机器人粉丝最明显的症状,而在你为它恐慌、或者花钱找人"清理"之前,值得先搞清楚它。

先说清这篇是什么、不是什么。 这篇讲的是用公开信号识别粉丝里的自动化账号。它不讲买粉,也不讲怎么跑关注机器人。两者都违反 X 的规则、都会让你的账号承担风险,而且 —— 正如最后一节讲的 —— 买粉会主动伤害那个真正重要的数字。我们是只读数据接口,无法对账号执行任何操作,也不会为此做功能。


为什么它比看起来更要紧

机器人粉丝不只是面子问题。它们对决定你触达的那个指标有实质伤害。

互动率 = 互动数 ÷ 触达。 机器人把分母撑大,对分子毫无贡献。一万个机器人粉丝,能让一条真正表现很好的推文看起来平平无奇。

★这里有个反常的结果:粉丝数更大反而会让你看起来更差,因为评价你的每一个比率,分母都变得更大、更死。★

这也是为什么"我们有 5 万粉丝"脱离上下文就没什么意义。任何认真评估你的人看的都是每粉丝互动量,而那恰恰是机器人摧毁的那个数。参见怎么正确地算它。

自己做审计,需要拿到每个粉丝的完整资料而不只是用户名 —— 这正是我们接口返回的。


哪些信号真的指向自动化

没有任何单一信号是证据。 真人也会有很空的资料页;有些机器人伪装得很好。★下结论前必须要求多个信号同时成立。★

强信号:

信号 为什么它指向自动化
关注数 ≫ 粉丝数 关注了 5,000 个、只有 12 个回关,是典型的批量关注形态
零发帖,或全是转发 从不原创任何内容的账号没有在参与
注册时间很新且成批 很多粉丝集中在同一周注册 = 一批买来的
默认头像 单独看很弱(很多真人也不设),但和其它信号组合起来有意义
用户名带随机数字 @john82749163 —— 自动生成用户名的典型形态

弱信号 —— 绝不能仅凭这些判断:

  • 没写简介。很多真人就是不写。
  • 粉丝少。每个人都是从零开始的。
  • 非中/英文内容。这显然什么都不能说明。
  • 账号新。新用户是存在的。

⚠️ 最该避免的错误: 把过滤器做得激进到会误伤真人。一个安静的读者 —— 关注了 200 个账号、很少发帖、没写简介 —— 是完全正常的用户,而在一个粗糙的过滤器眼里,他和机器人无法区分。如果你要基于这个采取行动,要求多个强信号,并接受你永远无法达到确定性。


检查你自己的粉丝

上面每个信号都在公开的资料数据里,所以这件事就是把粉丝列表拉下来打分。

import requests

BASE = "https://api.socialapi.tech"
KEY  = "your_api_key"
HDRS = {"X-API-Key": KEY}

def get_followers(username, pages=5):
    """翻页拉取粉丝列表。"""
    out, cursor = [], None
    for _ in range(pages):
        params = {"username": username, "limit": 100}
        if cursor:
            params["cursor"] = cursor
        r = requests.get(f"{BASE}/v1/user/followers",
                         params=params, headers=HDRS, timeout=60)
        r.raise_for_status()
        body = r.json()
        batch = body["data"]
        if not batch:
            break
        out.extend(batch)
        cursor = body.get("meta", {}).get("next_cursor")
        if not cursor:
            break
    return out

def suspicion_score(acct):
    """数强信号个数。分越高越可能是自动化账号。"""
    score = 0

    followers = acct.get("followers_count", 0)
    following = acct.get("following_count", 0)
    posts     = acct.get("statuses_count", 0)

    # 批量关注形态
    if following > 500 and followers > 0 and following / followers > 20:
        score += 2
    # 从不发帖
    if posts == 0:
        score += 2
    elif posts < 5:
        score += 1
    # 没有简介
    if not acct.get("bio", "").strip():
        score += 1
    # 用户名结尾是随机数字
    handle = acct.get("username", "")
    if len(handle) > 8 and handle[-6:].isdigit():
        score += 1

    return score

followers = get_followers("yourhandle", pages=5)
scored = [(a, suspicion_score(a)) for a in followers]

likely = [(a, s) for a, s in scored if s >= 4]
print(f"{len(followers)} 个粉丝中 {len(likely)} 个得分 ≥4 ({len(likely)/max(len(followers),1):.1%})")

for acct, s in sorted(likely, key=lambda x: -x[1])[:15]:
    print(f"  [{s}] @{acct['username']:<22} "
          f"关注 {acct['following_count']:>6} / 粉丝 {acct['followers_count']:>6}, "
          f"{acct['statuses_count']:>5} 帖")

诚实地读这个输出: 阈值取 4 意味着至少要两个强信号。再调低,你就会开始误伤安静的真人。★不存在一个既完整又精确的阈值★ —— 按"误判和漏判哪个代价更大"来选。

正常结果长什么样: 任何体量的账号都会有一定比例。百分之几很平常 —— 账号被机器人关注并不代表你做错了什么。值得调查的是突然的跳变,不是基线。


评估别人的账号

同一套打分对任何公开账号都适用,而这才是有用的那个版本 —— 当你在评估一个 KOL、一个合作方或一个候选人时。

要比什么: 把他的互动率和同领域、同体量的账号比。一个 10 万粉丝、每条 20 个赞的账号,背后有个需要解释的故事。有时这个故事是无辜的 —— 一个老账号,受众散了。但常常不是。

★破绽不在粉丝数本身,而在粉丝数和互动量之间的错配。★ 那是一次除法,而且它比任何单个资料信号都更难伪造。


关于买粉

既然搜这类词的人里常有正在考虑这件事的,那就直说:

它没用,原因是算术。 买来的粉丝不互动。而互动率同时决定了算法触达和你在认真评估者眼中的样子。买粉让你的分母变大、分子不动 —— 所以它让真正重要的那个数字变得更差,而且是持久且可见地更差。

它同时违反 X 的规则,可能导致账号处罚。而且买来的账号会被成批清理,所以你付钱买的那个数字最终还是会掉。

关于"清理"服务: 任何代你移除粉丝的东西,都需要对你账号的写入权限 —— 意味着交出凭据或一个已授权的会话。为了一个面子上的收益去承担这种风险不划算。 如果你要移除特定粉丝,X 自带的移除粉丝功能就能做到,不需要把权限给任何人。


大家会问的问题

怎么知道我的粉丝是不是假的? 看有没有这样的账号:关注了几千人却没几个粉丝、从不发帖、没有简介。要几个信号一起看,不是看一个。

我为什么突然涨了很多粉? 可能是自然的 —— 某条推文传开了。也可能是一波机器人,这很常见,而且通常不是你做了什么。去看互动量有没有同比例上涨。

机器人粉丝会伤害我的账号吗? 它们伤害你的互动率,而这影响触达和你在评估者眼中的样子。如果不是你买的,通常不会导致处罚。

能移除机器人粉丝吗? 可以手动移除特定粉丝。X 界面里没有批量移除,而第三方批量工具需要你的账号权限。

多少假粉算正常? 对大多数账号,百分之几很平常。大号往往更多。信号是突然的尖峰,不是基线。

推特上有多大比例是机器人? 各种估计差异极大,没有哪个是权威的。对任何具体数字都保持怀疑,包括那些说得很自信的。

能查别人的假粉吗? 能 —— 同样的公开信号适用于任何公开账号。他的互动/粉丝比是最快的检查。

假粉会被自动清掉吗? X 会周期性清理自动化账号,这就是买来的数字会衰减的原因。时间不可预测。

买推特粉丝违法吗? 不违法,但违反 X 条款,可能被处罚。而且它会让你的互动率更差,这通常和你的目的正好相反。

那怎么获得真实粉丝? 持续围绕一个具体主题发帖、真诚互动、给别人一个关注你的理由。没有捷径能胜过它。

粉丝关注比多少合适? 真实账号之间差异极大,没有目标数字。指向自动化的是那些极端情况(关注几千、被几十人关注)。

机器人能看到我的推文吗? 技术上它们的时间线里会有。但它们不会真的阅读或有意义地互动,所以对触达没有帮助。

机器人会影响我的互动率吗? 会,而且是直接的负面影响。它们撑大分母,不碰分子。

怎么举报机器人账号? 在资料页用 X 的举报功能,选垃圾信息或虚假账号。

能批量拉黑机器人粉丝吗? 界面里不能。批量工具需要账号权限,那本身就是风险。

机器人为什么关注我? 自动化的回关养号 —— 它们广泛关注,指望有人回关。很少是针对你个人的。

机器人之后会取关吗? 经常会。关注再取关是标准套路,这也是取关追踪里能看到那么多波动的原因之一。

能确定某个具体账号是不是机器人吗? 你可以从多个信号建立合理的把握。光凭公开数据无法确定,任何声称能确定的人都夸大了。

怎么用程序审计我的粉丝? 拉粉丝列表、按上面的信号给每个资料打分、看分布。本文前面那段代码就是一个能跑的起点。

认证能防机器人吗? 不能。认证说明的是有付费订阅,不是这个账号是真人。

怎么审查我的推特粉丝? 把带完整资料的列表拉下来,给每个打分 —— ★没有任何单一信号是决定性的,所以要组合多个★,而且要排序而不是贴标签。

有免费的推特审查工具吗? 它们对公开资料数据套用启发式规则。 ★把它们给你的任何百分比都当作估算★ —— 没有人能核实谁是真人。

怎么检查虚假粉丝? 看比率,不要看绝对数 —— ★粉丝关注比、发帖数对账号年龄、以及默认资料字段★,这几个合起来比其中任何一个都说明问题。

怎么找出不活跃的粉丝? 看整份列表里各自最后发帖的时间。 ★不活跃和虚假不是一回事★ —— 一个被弃用的真实账号,仍然是一个离开了的真人。

能长期追踪不活跃粉丝吗? 能 —— 定时给列表拍快照,观察哪些账号停止发帖了。★这需要从现在开始★;那份历史不会追溯存在。

虚假粉丝会伤害我的账号吗? 不是你买的粉丝不是你的错,也不带来惩罚。 ★它们扭曲的是你自己的互动率计算★ —— 分母被灌水了。


如果你要做粉丝审计

打分本身很直接。工作量在采集上:不截断地翻完粉丝列表、存快照以便看出某一波是什么时候来的,以及为每个粉丝拿到完整资料而不只是用户名。

这正是我们的 API 提供的 —— 粉丝列表的每一条都带完整资料对象,含粉丝数、关注数、发帖数、简介和注册时间。基于游标的翻页、固定按次价格、没有属于你的限流要管。

★它在设计上就是只读的。★ 它能告诉你哪些粉丝看起来是自动化的。它无法移除它们、无法关注任何人、无法对你的账号做任何操作 —— 而这是刻意的:API key 泄漏损失的是配额,不是你的账号。

延伸阅读:正确衡量互动率 · 追踪粉丝与取关 · 不拉黑地移除一个粉丝。