了解Twitter的速率限制

时间:2015-03-01 21:40:45

标签: python twitter tweepy

我正在使用Tweepy编写一个函数,该函数将返回大型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分钟,这似乎正在起作用。显然,我希望这个尽可能高效地运行。任何人都可以帮助我了解我要拨多少电话我应该等多久?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

我会在评论中添加此内容,但我无法获得应有的声誉和内容。我刚才有同样的问题。实际上,每个请求最多可以获取5000个用户名,这意味着每15分钟可以获得75000个粉丝。只需将计数增加到5000.该呼叫使用关注者/列表调用。这是link

相关问题