我一直试图找出使用Twitter API在每15分钟间隔内可以进行的最大API调用次数。但是,我仍然不明白究竟什么是API调用以及限制是如何工作的。
首先,什么算作15分钟的间隔?这是否意味着我有按小时确定的一定数量的呼叫,因此每天我可以在9:30到9:45之间发出450个请求,或者它是由我第一次调用API时确定的,所以我第一个请求后可以发出450个请求吗?
其次,使用搜索API,我可以看到我可以制作450 requests for each 15-minute interval。什么算作请求?在Tweepy,我可以打电话
searched_tweets = [status for status in tweepy.Cursor(api.search, q=topic, tweet_mode='extended').items(1000)]
获取1000条关于主题的推文,其中主题是String。这将是多少个API调用?由于每次调用查询大小计数的限制似乎是100,因此Tweepy会进行10次调用吗?或者,由于默认值为15,Tweepy是否会拨打100/15电话?有什么我不是为了最大限度地提高效率吗?
基本上,我试图获得每个Twitter API尽可能多的数据。我仍然不完全理解什么算作时间窗口,以及Twitter如何确定Search API调用。任何帮助表示赞赏!
答案 0 :(得分:1)
通常,1个API调用== 1个HTTP请求(GET,POST,PUT,DELETE)。 使用twitter,他们以15分钟为增量进行测量。在15分钟内,您可以执行X号Y请求类型和端点。 https://dev.twitter.com/rest/public/rate-limits
https://dev.twitter.com/rest/public/rate-limiting
Twitter还为您提供响应标题,帮助您防止达到速率限制:
x-rate-limit-limit: the rate limit ceiling for that given endpoint
x-rate-limit-remaining: the number of requests left for the 15 minute window
x-rate-limit-reset: the remaining window before the rate limit resets, in UTC epoch seconds
因此,在伪代码中,您可以if request.response.headers['x-rate-limit-remaining'] <= 2:
并在重置时间之前暂停或执行其他操作。