tweepy计数限制为200吗?
我现在正在尝试获取一些大账号的粉丝,这些账号有很多粉丝。
我在使用Tweepy这个库,并且用了一段代码(带有游标):
follower_cursors = tweepy.Cursor(api.followers, id = id_var,count=5000)
for friend in follower_cursors.items():
好吧,如果我不指定数量,似乎默认每页只显示20个结果,但根据Twitter API的文档,它可以提供5000个粉丝,所以我尝试把数量设置到最大。
然而,这似乎没有被考虑进去,每页最多只包含200个条目,这真是个问题,因为这样会更容易触发请求限制。
我哪里做错了?有没有办法让Tweepy请求每页5000个ID,以减少请求次数,并覆盖这个默认的最大值200?
谢谢!
1 个回答
4
你可以使用光标来处理页面
,而不是项目
,然后逐页处理每一页的内容:
for page in Cursor(api.user_timeline).pages():
# page is a list of statuses
process_page(page)
# or iterate over items in `page`
我在tweepy的光标中没有看到返回结果的限制,所以它应该会返回尽可能多的结果。
之前的回答:
每页的最大结果是由Twitter的API限制的,而不是tweepy。你应该对每次调用返回的200个结果进行分页,而光标
已经为你做了这件事。如果有5000个关注者,那么每次最多返回200个结果,你只需要调用25次。你仍然可以有4975次调用去做其他事情。
如果想超过每小时5000次的限制,你需要每分钟至少调用83次,或者每秒1.4次。
注意,'读取限制'是按应用程序计算的,而'写入限制'是按用户计算的。所以如果你的任务需要大量读取,可以考虑在两个或更多的应用之间分配任务*。
如果更适合你的需求,可以考虑使用流式API。
*: 不过我相信Twitter有措施来防止滥用。