使用 Rvest 或 JsonLite 从 API 抓取网页

Webscrape from API with Rvest or JsonLite

我正在尝试从此 website 中抓取数据。我以前成功过,但是他们已经更改了站点。如果他们有的话,是否可以从他们的 API 中提取?

或者,我可以使用 RSelenium 来完成,但这需要很多时间。

我发现这是开发工具,link https://www.domstol.no/api/episerver/v3/beramming/ 并且它 return 我想要的完整数据集。如下所示:

我如何才能将其请求到 R 中?

只需要模仿 POST 请求在 JSON body 中发送空白参数值。 None 个 headers 或 cookie 是必需的。

library(httr2)
library(magrittr)

r <- request("https://www.domstol.no/api/episerver/v3/beramming/") %>% 
  req_body_json(list('To' = '', 'From' = '', 'CaseAbout' = '', 'CaseNumber' = '')) %>% 
  req_perform() %>%
  resp_body_json()


library(purrr)

df <- map_dfr(r, ~ data.frame(.x))

或根据 OP 在评论中重新 df 来自调用结果

library(httr2)
library(magrittr)
library(dplyr)

df <- request("https://www.domstol.no/api/episerver/v3/beramming/") %>% 
  req_body_json(list('To' = '', 'From' = '', 'CaseAbout' = '', 'CaseNumber' = '')) %>% 
  req_perform() %>%
  resp_body_json(simplifyVector = TRUE) %>% 
  tibble()