了解 Twitter 速率限制

Understanding the Twitter rate limit

我正在使用 Tweepy 编写一个函数,该函数将 return 一个大型 Twitter 帐户的所有关注者并将它们写入一个文件。我一直在阅读有关 Twitter 速率限制的信息,但它仍然不太有意义。文档说“每 15 分钟调用 15 次,每 15 分钟调用 180 次”。然而,当我 运行 我的代码没有睡眠功能时,我设法在推特切断我之前获得了大约 280 个名字。那么我实际上在这里打了多少个电话?我的代码如下:

import tweepy
import time

auth = tweepy.OAuthHandler("...", "...")
auth.set_access_token("...", "...")
api = tweepy.API(auth)

f = open('output.txt', 'w')
timecount = 0
for user in tweepy.Cursor(api.followers, screen_name="NAME").items():
    timecount = timecount + 1
    if timecount == 200:    
        print "HOLD ON A SECOND!!!"
        #print api.rate_limit_status()
        time.sleep(60*15)
        timecount = 0   
    data = user.screen_name 
    print user.screen_name  
    print >> f, data   
f.close()

现在它在每 280 个名称之间等待 15 分钟,这似乎在起作用。显然,我希望这个 运行 尽可能高效。谁能帮我了解我打了多少个电话,我应该等多久?

在这种情况下,数学非常简单,在 Twitter 将您关闭之前,您实际上发出了 14 个请求,但是您能够获取 280 个名称,因为 tweepy.Cursor(api.followers, screen_name="NAME") 是一个 returns 的请求一次 20 个值,这意味着您在单个请求中获取 20 个值,正如您提到的,您能够获取 280 个名称,这并不奇怪,因为 280/20 = 14 所以实际上你只发出了 14 个请求,你只是迭代了 280 个值以打印出名称等。请参阅 documentation 了解更多详细信息。

我会在评论中添加这个,但我不能应得的声誉和东西。我刚才有同样的问题。实际上,每个请求最多可以获取 5000 个用户名,这意味着您每 15 分钟可以获得 75000 个关注者。只需将计数增加到 5000。调用使用 followers/list 调用。这里是 link.