繁体   English   中英

了解Twitter的速率限制

[英]Understanding the Twitter rate limit

我正在使用Tweepy编写一个函数,该函数将返回大型Twitter帐户的所有关注者并将其写入文件。 我一直在阅读有关Twitter速率限制的信息,但仍然不太合理。 该文档说:“每15分钟打15个电话,每15分钟打180个电话”。 但是,当我运行没有睡眠功能的代码时,在Twitter将我拒之门外之前,我设法获得了大约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")是一个返回的单个请求一次20个值,这意味着您在单个请求中获取20个值,并且正如您提到的那样,您能够获取280个名称,这并不奇怪,因为280/20 = 14因此,实际上您只发出了14个请求,您只需遍历280个值即可打印出名称等。有关更多详细信息,请参阅文档

我会在评论中添加此内容,但我无法享有声誉和东西。 前段时间我遇到了同样的问题。 实际上,每个请求最多可以获取5000个用户名,这意味着每15分钟可以获得75000个关注者。 只需将计数增加到5000即可。该呼叫使用关注者/列表呼叫。 这是链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM