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

调用Twitter get_followers API爬取10万粉丝耗时超预期如何解决

问题原因

你遇到的耗时超出预期的问题,主要来自以下几个核心原因:

  • 接口选择错误:你当前调用的api.get_followers接口返回的是完整的用户实体数据,不仅单请求数据传输量远大于纯ID查询,逐一遍历每个用户对象再存ID的操作也增加了不必要的开销。
  • 实际请求次数高于理论值:Twitter API不会每次都返回满额的5000条数据,遇到被封禁、设为隐私、已注销的粉丝账号时会直接过滤该类账号,单次请求返回量不足5000就需要发起更多次请求才能拉完10万粉丝,触发更多速率限制等待。
  • 遍历方式开销过高:你用.items()逐一遍历每个用户对象,Tweepy的Cursor在逐次返回单个元素时会产生额外的迭代开销,进一步拉长整体运行时间。
  • 权限不匹配:如果你的Twitter开发者账号是Essential权限而非Elevated权限,实际可用的接口速率限制会低于官方文档标注的15次/15分钟,也会导致等待次数增加。
解决方案

按优先级调整可大幅降低爬取耗时:

  1. 改用专门拉取粉丝ID的接口
    替换get_followers为get_follower_ids,该接口直接返回粉丝ID列表,不需要拉取冗余的用户实体数据,单请求响应速度提升非常明显,配合分页遍历的代码示例:
for page in Cursor(api.get_follower_ids, screen_name=screen_name, count=5000).pages():
    ids.extend(page)
  1. 改用分页遍历而非单元素遍历
    直接用.pages()批量处理每一页的5000个ID,一次性扩展到结果列表中,省去逐次迭代的开销,比.items()逐一遍历效率高30%以上。
  2. 校验开发者账号权限
    确认你的开发者账号已升级为Elevated权限,Essential权限的接口调用限额仅为Elevated权限的一半甚至更低,会直接导致等待时间翻倍。
  3. 避免同密钥并发其他请求
    爬取过程中不要用同一套开发者密钥发起其他类型的Twitter API请求,防止占用速率限额,导致额外的等待。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:15:05