使用循环 twitteR 查询处理 404 和其他错误响应

Handling 404 and other bad responses with looping twitteR queries

如果出现错误我的循环不会中断,我希望如此。我希望它继续进行下一次迭代。此示例是我遇到的错误和循环中断的最小示例。在我的实际应用程序中,我正在遍历从另一个脚本生成的一些关注者。

library(twitteR)
#set oauth...
for(i in 1:10) {
+ x <- getUser("nalegezx") }

Error in twInterfaceObj$doAPICall(paste("users", "show", sep = "/"), params = params, : client error: (404) Not Found

我知道这个循环只会重写对 x 的相同响应。我只是对不打破循环感兴趣。

我不是 R Twitter 方面的专家 API,但我建议您考虑将对 getUser() 的调用放在 try 块中,如下所示:

for (i in 1:10) {
    x <- try(getUser("sdlfkja"))
}

这应该可以防止您的代码在循环中间崩溃。如果你想在循环中出现警告或错误时也有单独的逻辑,你可以使用 tryCatch:

for (i in 1:10) {
    x <- tryCatch(getUser("sdlfkja"),
                  warning = function(w) {
                                print("warning"); 
                                # handle warning here
                            },
                  error = function(e) {
                              print("error");
                              # handle error here
                          })
}

我接受了 Tim 的回答,因为它解决了我遇到的问题,但对于我使用 lookupUsers 从用户个人资料上的 Twitter 获取许多结果的特定实例,它为我完成了工作,而不会影响我的请求限制。