我目前正在尝试检索某个拥有大量关注者的大帐户的关注者。
我正在使用 Tweepy 和这段代码(带光标):
follower_cursors = tweepy.Cursor(api.followers, id = id_var,count=5000)
for friend in follower_cursors.items():
好吧,如果我不指定计数,似乎默认情况下每页只显示 20 个结果,但从 Twitter API 文档来看,它可以提供 5000 个关注者,我试图将其设置为最大值。
然而,这似乎没有被考虑在内,每个页面最多包含 200 个条目,这是一个真正的问题,因为您将更容易触发速率限制。
我做错了什么?有没有办法制作包含 5000 个 ID 的 Tweepy 请求页面,以最大限度地减少请求并覆盖默认的最大值 200?
谢谢!
最佳答案
你可以使用 cursor for pages
而不是 items
,然后处理每页的项目:
for page in Cursor(api.user_timeline).pages():
# page is a list of statuses
process_page(page)
# or iterate over items in `page`
我在 tweepy Cursor 中没有看到限制对于返回的结果,所以它应该返回尽可能多的结果。
上一个答案:
最大每页结果由 Twitter API 强制执行,而不是由 tweepy 强制执行。 您应该在每次调用 200 个结果的列表中分页,Cursor
已经为您做了。如果有 5000 个关注者,那么每个查询最多 200 个结果,您只使用了 25 个调用。你还有 4975 个电话可以做其他事情。
要超过每小时 5000 次的速率限制,您需要每分钟至少调用 83 次或每秒调用 1.4 次。
请注意,“读取限制”是针对每个应用程序的,而“写入限制”是针对每个用户的。因此,您可以将任务分配给两个或多个读取密集型应用*。
考虑使用 Streaming API相反,如果它更适合您的需求。
*:虽然我确信 Twitter 有适当的控制措施来防止滥用。
关于python - tweepy 计数限制为 200?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23460560/