我编写了一个脚本来遍历 Twitter 用户 ID 列表并将 follower_id 列表保存到文件中。我已经使用了几次,没有任何问题。对于长列表,我添加了这段代码来检查每个 GET 请求之前的速率限制,如果我即将受到速率限制,则休眠:
rate_limit_json = api.rate_limit_status()
remaining_hits = rate_limit_json["remaining_hits"]
print 'you have', remaining_hits, 'API calls remaining until next hour'
if remaining_hits < 2:
dtcode = datetime.utcnow()
unixtime = calendar.timegm(dtcode.utctimetuple())
sleeptime = rate_limit_json['reset_time_in_seconds'] - unixtime + 10
print 'waiting ', sleeptime, 'seconds'
time.sleep(sleeptime)
else:
pass
我在脚本顶部设置了这个 Oauth 简介:
auth = tweepy.OAuthHandler('xxxx', 'xxxx')
auth.set_access_token('xxxx', 'xxxxx')
api = tweepy.API(auth)
我反复打的电话是:
follower_cursors = tweepy.Cursor(api.followers_ids)
所以现在,无论我拨打多少电话,我的“剩余点击次数”都保持在 150 次,直到 Twitter 返回“超出速率限制。客户每小时发出的请求不得超过 350 次”。
似乎速率限制检查器报告了我未经授权的 IP 地址的速率限制 (150),但我的呼叫计入了我的应用程序的速率限制 (350)。
如何调整我的速率限制检查器以再次实际检查应用程序的速率限制?