程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了R - 使用 'GET' 从所有页面获取 json 语句;去除页面限制大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决R - 使用 'GET' 从所有页面获取 json 语句;去除页面限制?

开发过程中遇到R - 使用 'GET' 从所有页面获取 json 语句;去除页面限制的问题如何解决?下面主要结合日常开发的经验,给出你关于R - 使用 'GET' 从所有页面获取 json 语句;去除页面限制的解决方法建议,希望对你解决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,请注明来意。