使用沙盒环境和搜索推文了解 Twitter API 速率限制 API

Understanding Twitter API rate limits using sandbox environment and searchtweets API

我正在尝试为一些 Twitter 用户拉取 2 年期间的推文。我在 Python 中使用 searchtweets 库和 API.

的沙盒版本

我正在使用他们的结果流方法:

import searchtweets
rule = gen_rule_payload("from:BBCNews", from_date="2017-01-01",
                            to_date="2017-01-01", results_per_call=100) 
rs = ResultStream(rule_payload=create_rule(i),
                                  max_results=18000,  
                                  max_pages=1,
                                  **premium_search_args) # these are credentials, ommitted for security 
                    tweets = list(rs.stream())

但是,我得到了这个返回:

HTTP Error code: 429: Request exceeds account’s current package request limits. Please upgrade your package and retry or contact Twitter about enterprise access.

我查看了速率限制 (https://developer.twitter.com/en/docs/basics/rate-limiting) 并认为我正确地推断出对于此类请求,速率限制是每 15 分钟 180 次,因此将 max_results 限制为 18,000 次防止这个对 BBC 新闻推文的请求超过 15 分钟的速率限制 window。每个请求返回100个结果,所以18000个结果就是100个结果*180个请求。

这行不通,所以我想我一定是误会了。如果有人能提供一些进一步的见解,那就太好了。

您引用的网页状态(顶部第一行):

Standard API endpoints only, does not apply to premium APIs

每 15 分钟 180 个请求是指标准(旧版)1.1 搜索 API,仅限于 7 天的非完整索引。在使用沙盒的高级搜索中,如果您正在搜索完整的存档产品,则该月有 50 个请求,每个请求最多 100 条推文(请参阅您的应用仪表板“订阅”部分)。在付费等级中,您每月有多达 100 到 2500 个请求,每个请求最多可覆盖 500 条推文,搜索规则更复杂(沙盒中的 128 个字符中有 1024 个字符)

查看应用仪表板的“订阅”面板,其中说明了您在本月的请求方面所处的位置。