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