tweepy计数限制为200吗?

4 投票
1 回答
10465 浏览
提问于 2025-04-18 05:21

我现在正在尝试获取一些大账号的粉丝,这些账号有很多粉丝。

我在使用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有措施来防止滥用。

撰写回答