怎么判断你的推特粉丝里哪些是机器人
怎么判断你的推特粉丝里哪些是机器人
你的粉丝数涨了。别的什么都没涨 —— 点赞一样、回复一样、触达一样。
这个落差是机器人粉丝最明显的症状,而在你为它恐慌、或者花钱找人"清理"之前,值得先搞清楚它。
先说清这篇是什么、不是什么。 这篇讲的是用公开信号识别粉丝里的自动化账号。它不讲买粉,也不讲怎么跑关注机器人。两者都违反 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 泄漏损失的是配额,不是你的账号。
延伸阅读:正确衡量互动率 · 追踪粉丝与取关 · 不拉黑地移除一个粉丝。