如何提升Twarc/Twitter API获取账号粉丝的速度?
Twitter粉丝抓取速度慢的问题分析与优化方案
代码中的核心问题
- 你设置的
max_results=50是导致速度暴跌的关键:Twitter API的followers端点单次请求最多可返回1000条结果,你现在每次只请求50条,原本15次请求就能完成的1.5万粉丝抓取,需要300次请求,直接把请求次数放大了60倍,这是耗时5小时的主要原因。 - 循环中逐个
append粉丝数据虽不是核心问题,但批量处理能小幅提升效率。
优化后的代码
将max_results改为API允许的最大值1000,同时用extend批量添加数据,减少循环开销:
from twarc.client2 import Twarc2 from twarc.expansions import ensure_flattened twarc = Twarc2(# 填入你的API登录信息#) # 单次请求拉满1000条结果,匹配API上限 search = twarc.followers("TwitterAccountToScrape", max_results=1000, user_fields=['id']) followers = [] for page in search: # 批量追加数据,替代逐个append followers.extend(ensure_flattened(page))
其他提速建议
- 确认Twarc的速率限制处理:Twarc默认会自动处理API的速率限制(
wait_on_rate_limit=True),确保它在到达限制时自动等待,不要额外添加手动延迟,避免不必要的耗时。 - 谨慎使用并行请求:如果你的API权限允许,可尝试多线程并行请求,但必须严格控制请求频率,不能突破每15分钟15次的限制,否则会触发封禁。
- 优化数据存储:如果抓取的粉丝量较大,不要一直将数据存在内存中,每获取几页就写入本地文件(如CSV、JSON),减少内存占用带来的性能损耗。
内容的提问来源于stack exchange,提问作者gdhp
相关产品推荐
相关产品推荐

