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

如何使用Tweepy API获取某条推文的所有转发者?

解决Tweepy获取推文所有转发者的问题

嗨,我明白你遇到的麻烦了——你想用Tweepy的Cursor分页获取某条推文的所有转发,但api.retweets()这个方法确实不支持分页,它最多只能返回100条转发内容,这就是触发报错的原因。

要拿到这条推文的全部转发者,得换个思路:使用专门获取转发者ID的API方法,这个方法支持分页,配合Cursor就能遍历所有结果。下面是具体的实现步骤和代码:

方法说明

Twitter API提供了statuses/retweeters/ids端点(对应Tweepy的api.get_retweeter_ids()方法),用来获取某条推文的所有转发者ID,这个方法天生支持分页,所以可以用Cursor来拉取全部结果。如果需要转发者的详细信息(比如用户名、个人简介等),还能通过批量查询用户的方法补充获取。

完整代码示例

import tweepy

# 假设你已经完成API认证,api是初始化好的Tweepy API对象
target_tweet_id = "替换为你的目标推文ID"

# 第一步:获取所有转发者的ID
all_retweeter_ids = []
for user_id in tweepy.Cursor(api.get_retweeter_ids, id=target_tweet_id).items():
    all_retweeter_ids.append(user_id)
print(f"共获取到 {len(all_retweeter_ids)} 个转发者ID")

# 第二步(可选):批量获取转发者的详细用户信息
# 注意:Twitter API限制每次lookup_users最多查询100个用户ID,所以分批次处理
for batch_start in range(0, len(all_retweeter_ids), 100):
    batch_ids = all_retweeter_ids[batch_start:batch_start+100]
    retweeter_users = api.lookup_users(user_ids=batch_ids)
    
    for user in retweeter_users:
        print(f"转发者:@{user.screen_name} | 用户ID:{user.id} | 简介:{user.description}")

注意事项

  • 速率限制:get_retweeter_ids的API速率限制是每15分钟15次请求,每次最多返回100个ID,Tweepy的Cursor会自动处理分页,但如果转发者数量极大,可能需要注意等待时间,避免触发限制。
  • 权限要求:确保你的API密钥有足够的权限访问这些端点,一般标准的API密钥就能满足需求。

内容的提问来源于stack exchange,提问作者robert patrik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:39:23