如何通过Twitter API获取粉丝数超过指定阈值的账号粉丝列表
实现方案
Twitter v1.1的GET followers/list接口本身不支持服务端按粉丝数筛选,所以需要先分页拉取目标账号的全量粉丝数据,再在本地按阈值过滤,具体步骤如下:
1. 接口调用配置
你现在使用的接口路径https://api.twitter.com/1.1/followers/list.json是正确的,调整参数适配分页需求即可:
- 新增
count=200参数:单页请求最多返回200个粉丝数据,减少请求次数 cursor参数用于分页:首次请求传-1,后续每次请求使用上一次接口返回的next_cursor值,直到next_cursor返回0即代表粉丝列表已经拉取完成- 可将
include_user_entities设置为false:如果不需要用户的实体相关数据,关闭后可以降低返回包体积,提升拉取效率 - 替换
screen_name的值为你要查询的目标账号用户名即可
2. 本地过滤逻辑
每次请求拿到返回结果后,遍历users数组中的每一个用户对象,判断followers_count字段的数值是否满足你设定的阈值,符合条件的就单独保存。
以下是Python实现的示例代码:
import requests import time # 基础配置,替换为你自己的参数 BEARER_TOKEN = "你的Twitter开发者平台Bearer令牌" TARGET_SCREEN_NAME = "dogecoin" FOLLOWER_THRESHOLD = 50000 # 粉丝数阈值,这里设为5万 qualified_users = [] next_cursor = -1 while next_cursor != 0: req_url = f"https://api.twitter.com/1.1/followers/list.json?cursor={next_cursor}&screen_name={TARGET_SCREEN_NAME}&skip_status=true&include_user_entities=false&count=200" headers = {"Authorization": f"Bearer {BEARER_TOKEN}"} response = requests.get(req_url, headers=headers) resp_data = response.json() # 过滤符合阈值的用户 for user in resp_data.get("users", []): if user.get("followers_count", 0) >= FOLLOWER_THRESHOLD: # 可按需保存你需要的用户字段 qualified_users.append({ "用户名": user["screen_name"], "展示名": user["name"], "粉丝数": user["followers_count"] }) next_cursor = resp_data.get("next_cursor", 0) # 按接口限流规则设置休眠时间,避免触发限流封禁:followers/list接口15分钟最多请求15次 time.sleep(65) # 输出所有符合要求的用户 print(qualified_users)
3. 注意事项
- 严格遵守Twitter API限流规则:
GET followers/list接口用户身份凭证15分钟最多请求15次,应用身份凭证15分钟最多请求30次,要是目标账号粉丝量很大,拉取全量数据需要的时间会比较久,不要调整休眠时间过短触发限流。 - 如果目标账号粉丝量超过10万,更推荐使用Twitter v2版本的粉丝拉取接口,分页效率更高,返回字段更可控。
内容的提问来源于stack exchange,提问作者Mrityunjay
相关产品推荐
相关产品推荐

