如何通过 API 获取 Twitter 粉丝和关注列表
公开 X(原 Twitter)账号的粉丝和关注列表,是平台上极具价值的数据集。粉丝列表说明谁对某个品牌、话题或人物感兴趣;关注列表则反映账号重视谁,包括其影响来源、竞争对手和信息来源。两者共同描绘账号周围的社交关系图谱。 Sorsa API 提供两个端点:/followers(谁关注了某账号)和 /follows(某账号关注了谁)。二者每次最多返回 200 份完整用户资料,并通过游标分页遍历完整列表。每个用户对象包含简介、粉丝数、推文数、所在地、认证状态、头像等。
本指南从最简单请求开始,介绍两个端点,并逐步涵盖生产规模的数据提取、筛选、受众重叠分析和分页策略。
免费开始: 包括/followers、/follows和/verified-followers在内的所有 Sorsa 端点,都可使用初始赠送的 100 次请求:一次性赠送,无需信用卡,永不过期。每次最多返回 200 份资料,因此在购买套餐前,大约可获取某账号的前 20,000 位粉丝。
注意: 更多提取方式和受众分析实例,请参阅博客上的 Twitter 粉丝 API:获取粉丝和关注列表。
最简单的示例:获取粉丝
只需一次请求和一次响应,即可获取任意公开账号的第一页粉丝。cURL
Python
JavaScript
users 数组,以及用于分页的 next_cursor。
提示: 通过最新粉丝工具或 API Playground,无需代码即可预览任意账号的粉丝。
最简单的示例:获取关注对象(订阅)
/follows 的用法相同,但返回用户关注的账号:
端点参考
两个端点都使用 GET,并支持相同输入选项。GET /v3/followers
返回关注指定账号的用户。
GET /v3/follows
返回指定用户正在关注的账号。
输入参数(查询字符串)
每次只提供
username、user_id 或 user_link 其中一种。
响应
id、username、display_name、description、location、created_at、followers_count、followings_count、favourites_count、tweets_count、media_count、profile_image_url、profile_background_image_url、bio_urls、pinned_tweet_ids、verified、can_dm、protected 和 possibly_sensitive。
每页最多返回 200 个用户对象。响应中存在 next_cursor 表示还有更多结果,将其作为下次请求的同名参数传回即可。字段缺失或为 null 时表示已到列表末尾。
分页获取完整粉丝列表
一次请求只返回一页。要收集完整列表,需循环使用next_cursor,直到该字段缺失。
Python
JavaScript
/follows,只需更换 URL。
所有分页端点的详细行为请参阅分页。
获取完整关注列表
只需替换端点,代码相同。查看账号关注谁,往往比查看其粉丝更能揭示信息:创始人的关注列表显示其重视的投资人、合作伙伴和竞争对手;意见领袖的关注列表则反映其信息来源。实际应用
按资料条件筛选粉丝
原始列表有用,筛选后更便于行动。由于每个用户对象都包含完整资料元数据,你可以按任意属性细分受众,无需额外 API 调用:location 是用户自由填写的文本。若需要更可靠的国家级数据,可通过 /about 查询各账号的国家标记。完整流程见受众地理分布。
发现竞争对手之间的受众重叠
获取多个竞争对手的粉丝列表,找出同时关注其中至少两家的用户。这些人多次主动选择关注同一主题,是市场中参与度较高的人群。了解行业领袖关注谁
获取专家或思想领袖的关注列表,发现他们认为值得关注的人。这有助于找到细分领域账号、新兴声音和行业领袖依赖的工具。认证粉丝
/verified-followers 的用法与 /followers 相同,但只返回带蓝色、金色或灰色认证标记的账号。主要适用于:
- 直接筛选较知名账号,无需获取完整列表后再处理。
- 避免在大型账号上浪费请求,尤其当认证用户占比很低时。为了找出 1,000 万粉丝账号中的 5,000 位认证粉丝,遍历全部列表需要 50,000 次请求;使用
/verified-followers约 25 次即可获取同样的数据。
/followers 相同,仍使用 next_cursor 迭代。完整详情请参阅 API 参考。
估算大规模 API 用量
每页最多返回 200 个用户对象,规划时可参考:
按每秒 20 次计算,50 次和 500 次请求在速率限制下的理论最短时间分别为 2.5 秒和 25 秒。但单条游标链必须串行处理,每页依赖上一响应,因此实际时间还包括响应延迟、节奏控制和重试。对于数百万粉丝的账号,除非确实需要完整覆盖,否则可考虑抽样,例如前 50 页、约 10,000 位粉丝。
由于每次最多返回 200 份资料,粉丝提取消耗的请求较少。免费 100 次请求约可覆盖 20,000 位粉丝;Starter(每月 10,000 次请求)约覆盖 2,000,000 位;Pro(每月 100,000 次请求)约覆盖 20,000,000 位。完整价格见价格。
数据时效与边界情况
粉丝排序。/followers 按 X 提供的顺序返回,通常为时间倒序,即新粉丝在前。前几页包含最近获得的粉丝。
受保护账号。 如果目标账号为受保护的私有账号,则无法访问粉丝和关注列表,端点会返回错误。
粉丝计数与提取列表。 资料中的 followers_count 是 X 维护的实时计数。由于停用、注销或最近移除的账号,可提取列表可能略有差异。大型账号可能相差几个百分点,不应对列表长度和 followers_count 做严格相等检查。这是平台层面的行为,并非 Sorsa 特有。
资料数据是当前状态。 每个用户对象反映请求时的资料,如当前简介、粉丝数和用户名,而非建立关注关系时的状态。数字 id 稳定不变,用户名则可能更改。
超大账号的抽样。 对于超过约 500,000 位粉丝的账号,前 50–100 页(最多约 10,000–20,000 位粉丝)有助于研究新粉丝。这是有序样本,不是整个受众的随机或代表性样本。除非有明确完整覆盖需求,通常无需全部提取。