【问题标题】:Twitter (Tweepy): What counts as a search API call?Twitter (Tweepy):什么算作搜索 API 调用?
【发布时间】:2018-01-12 18:11:33
【问题描述】:

我一直在尝试找出使用 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 条推文,其中主题是一个字符串。这将是多少 API 调用?由于查询大小计数的限制似乎是每次调用 100,Tweepy 是否进行了 10 次调用?或者,由于默认值为 15,Tweepy 是否进行了 100/15 次调用?为了最大限度地提高效率,我没有做些什么?

基本上,我正在尝试尽可能多地获取每个 Twitter API 的数据。我仍然不完全理解什么是时间窗口,以及 Twitter 如何确定搜索 API 调用。任何帮助表示赞赏!

【问题讨论】:

    标签: python python-3.x api twitter tweepy


    【解决方案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: 并暂停或执行其他操作,直到重置时间。

    【讨论】:

    • 感谢您的回答。所以,如果我理解正确的话,如果我从 9:29 开始,我无法最大化我的请求,等待 9:30,然后再次最大化我的请求。此外,如果我发出一个查询的 HTTP GET 请求,我将 GET 请求中的计数指定为 100(Twitter 的最大值),那只会算作一个请求。因此,理论上我可以通过运行 450 个大小为 100 的 GET 请求每 15 分钟获得 4500 条推文吗?
    • 文档似乎没有指定时间戳。一些系统使用滚动窗口(从现在开始的最后 15 分钟内的请求)或静态窗口 0-15、15-30、30-45、45-60。无论哪种情况,它们都会在响应标头中为您提供重置的确切时间。
    • 太好了,我会调查一下。感谢您的帮助,我真的很感激!祝你有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2013-06-26
    • 2014-09-03
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多