【问题标题】:R TwitteR and Rate-Limit IssuesR TwitteR 和速率限制问题
【发布时间】:2013-12-08 16:21:31
【问题描述】:

我在 R 中遇到了与 TwitteR 包似乎非常不一致的行为。我按如下方式触发查询,每个查询都在其 15 分钟窗口内,以符合 REST API 1.1 的速率限制功能。前三个工作。第4次失败。反复。

monsanto.tweets = searchTwitter('@monsanto', n = 1500);  
monsanto.tweets.20131207 = searchTwitter('@monsanto', n = 6000, until = '2013-12-07'); 
monsanto.tweets.20131205 = searchTwitter('@monsanto', n = 6000, until = '2013-12-05');
monsanto.tweets.20131202 = searchTwitter('@monsanto', n = 6000, until = '2013-12-02');

错误是: [1] “客户端错误 (429)” twInterfaceObj$doAPICall(cmd, params, "GET", ...) 中的错误: 错误:客户端错误 (429)

怎么样?我尝试过计数,以 1000 的步长将其降低到 1000。没有成功。我也尝试过主题的变化。

monsanto.tweets.20131202 = searchTwitter('@monsanto', 
    since = '2013-12-02', until = '2013-12-02', lang = 'en');
monsanto.tweets.20131130 = searchTwitter('@monsanto', 
    n = 1000, until = '2013-11-30');

这些都不起作用。在后台,“searchTwitter”的每个实例都可能生成多个 GET 请求到 REST API 1.1。根据文档,单个 GET 请求最多返回 100 条推文,默认为 25 条。满足 6000 条推文的请求最多需要 60 个请求,默认设置下需要 240 个请求。两者都在 15 分钟窗口内 480/应用程序的允许限制内。

什么给了?

PS - 我使用 OAuth。我开始认为我最好将自己的接口手动滚动到 REST API 1.1 并解析 JSON。

【问题讨论】:

    标签: r twitter


    【解决方案1】:

    我不使用“R”,但根据使用非常好的 python twitter 库的经验,我的建议是,对于高级用例,您最好使用任何标准 OAuth 库使用自己的接口。 您必须构建良好的错误处理和重新获取逻辑,因为 twitter 或该规模的任何服务都会出现瞬态故障。

    twitter 的默认计数似乎是 15,R 库是否使用 25 作为默认计数?有没有配置可以将其提升到 100?

    【讨论】:

    • 维沙尔,谢谢。 R Twitter 接口的默认计数是 25。该接口允许更大的计数,就 no 而言。它一口气获取的推文。我不确定它在引擎盖下做了什么。我的猜测是使用 Twitter 的 REST API v1.1 允许的最大存储桶大小并迭代多个请求。该限制目前为 65。
    猜你喜欢
    • 2011-11-16
    • 2012-08-24
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2015-04-21
    • 2021-10-26
    相关资源
    最近更新 更多