R TwitteR和速率限制问题

时间:2013-12-08 16:21:31

标签: r twitter

我经历过与R中的TwitteR软件包看起来非常不一致的行为。我按如下方式触发查询,每个查询都在15分钟的窗口中,以符合REST API 1.1的速率限制功能。前三个工作。第四次失败。反复。

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'的每个实例都可能生成对REST API 1.1的多个GET请求。根据文档,单个GET请求最多返回100条推文,默认为25条。满足6000条推文的请求最多需要60个请求,默认设置需要240个请求。两者都在允许的限制范围内,在15分钟的窗口内应用480 /。

是什么给出了?

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

1 个答案:

答案 0 :(得分:1)

我不使用'R',但我对一个非常好的python twitter库的经验建议是,对于高级用例,使用任何标准OAuth库使用自己的界面会更好。 你必须建立良好的错误处理和重新获取逻辑,因为twitter或任何服务都会出现瞬态故障。

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