使用 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()
我正在尝试从此 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()