我正在尝试为一些 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 个请求。
这不起作用,所以我想我一定是误解了。如果有人可以提供一些进一步的见解,那就太好了。