python - 使用沙盒环境和 searchtweets API 了解 Twitter API 速率限制
问题描述
我正在尝试为一些 Twitter 用户在 2 年内发布推文。我正在使用 Python 中的 searchtweets 库和 API 的沙盒版本。
我正在使用他们的 Result Stream 方法:
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 分钟窗口的速率限制。每个请求返回 100 个结果,因此 18,000 个结果将是 100 个结果*180 个请求。
这不起作用,所以我想我一定是误解了。如果有人可以提供一些进一步的见解,那就太好了。
解决方案
您引用的网页状态(顶部的第一行):
仅标准 API 端点,不适用于高级 API
每 15 分钟 180 个请求是指标准(旧版)1.1 搜索 API,仅限于 7 天的非完整索引。在使用沙盒的高级搜索中,如果您正在搜索完整的存档产品,则当月您有 50 个请求,每个请求最多 100 个推文(请参阅您的应用仪表板“订阅”部分)。在付费层中,您每月有 100 到 2500 个请求,每个请求可以覆盖多达 500 条推文,搜索规则更复杂(沙盒中的 128 个字符超过 1024 个字符)
检查应用程序仪表板订阅面板,它解释了您在当月请求方面的位置。
推荐阅读
- ruby-on-rails - 从控制器渲染 json 响应以查看
- c++ - 用 C++ 制作倒数计时器
- openstack - 自定义 openstack 仪表板时出错
- html - 我正在设置带有下拉菜单的菜单栏,但问题是您可以在下面的代码中看到
- rasa-nlu - 我想使用余弦相似度来识别意图并将其传递给 RASA Core
- tensorflow - 如何在 URDU 语言文本上进行 NLP?
- c# - OpenQA.Selenium.WebDriverException:未知错误:a.tagName.toUpperCase 不是通过 Selenium 和 C# 使用 reactJS 元素的函数
- elasticsearch - 在弹性搜索中映射以下非结构化数据的最佳方法是什么?
- ios - 如何使用 Sentry 获取 IOS SDK 开发的崩溃日志
- html - 是否可以使用一个弹性项目添加文本层(更多行)?