gpt4 book ai didi

python - 当我再进行 GET 调用时,get_rate_status "remaining hits"不会减少

转载 作者:行者123 更新时间:2023-11-28 19:25:26 25 4
gpt4 key购买 nike

我编写了一个脚本来遍历 Twitter 用户 ID 列表并将 follower_ids 列表保存到一个文件中。我已经多次使用它,没有任何问题。对于长列表,我添加了这段代码来在每个 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)。

如何调整速率限制检查器以再次实际检查应用的速率限制?

最佳答案

重复创建一个 Cursor 实例不会用完任何 API 引用,因为它实际上并没有向 twitter 发出请求。 Cursor 只是不同分页方法的 Tweepy 包装器。调用 nextprev 方法,迭代它,导致实际的 API 调用。

Twitter 不再有未经身份验证的 API 调用的概念(v1.1 API 始终需要身份验证)。我认为问题出在您对 Cursor 的使用上。尝试只创建一次实例,并重复调用 next 方法(确保捕获 StopIteration 异常,因为 next 是一个生成器)。

关于python - 当我再进行 GET 调用时,get_rate_status "remaining hits"不会减少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14326643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com