大佬教程收集整理的这篇文章主要介绍了R - 使用 'GET' 从所有页面获取 json 语句;去除页面限制,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在与我的问题相关的代码下方。
@H_197_5@install.packages("librarian") librarian::sHelf(httr,JsonlitE) username <- "YourUsername" password <- "Yourpassword" base <- "https://base.url/servlet/ekp/xAPI/statements" geT_Base <- GET(base,authenticate(username,password,type = "basic")) geT_Base_text <- content(geT_Base,"text") geT_Base_Json <- fromJsON(geT_Base_text,flatten = T)
使用当前代码,我可以获取前 100 个 API 语句;每页限制为 100 个。
然而,还有更多的语句存在,我想得到它们。换句话说,我需要下载更多的页面。从
@H_197_5@geT_Base_Json$more
我知道我当前的陈述来自第 1 页
@H_197_5@https://base.url/servlet/ekp/xAPI/statements?from=101".
如果我将 101 更改为 201,我将获得接下来 100 条语句的结果。然而,还有更多的陈述存在,我不知道有多少。是否可以编写一个循环,可以继续 GET 所有语句,直到没有更多语句存在?
我已经尝试了几次,但我真的被卡住了。我希望更有经验的 R 用户可以帮助一个菜鸟。
亲切的问候,
科尔苏
@H_197_5@
你可以试试这个:
@H_197_5@out <- list() baseurl <- "https://base.url/servlet/ekp/xAPI/statements?from=" counter <- 1L while (true) { thisurl <- paste0(baseurl,counter) res <- tryCatch({ dat <- GET(thisurl,authenticate(..)) dat <- content(dat,"text") fromJSON(dat,flatten = TRUE) },error = function(E) NULL) if (is.null(res) || !isTRUE(nrow(res) > 0)) break out <- c(list,list(res)) counter <- counter + 100L # or perhaps + nrow(res) } out <- do.call(rbind,out)
以上是大佬教程为你收集整理的R - 使用 'GET' 从所有页面获取 json 语句;去除页面限制全部内容,希望文章能够帮你解决R - 使用 'GET' 从所有页面获取 json 语句;去除页面限制所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。