如何从问题中的网站上抓取表格

问题描述 投票:0回答:1

我正在尝试从网页复制一张表,因为我试图获取每个数据集的数据版本,所以会有很多表,我试图获取至少一个表但失败了。抓取不是我的事,也许如何得到它是显而易见的,但对我来说不是。

这是我的代码:

url <- "https://data.cms.gov/provider-characteristics/medicare-provider-supplier-enrollment/medicare-fee-for-service-public-provider-enrollment/api-docs"

html <- rvest::read_html(url)
> html |> rvest::html_node(".table")
{xml_missing}
<NA>

还有

> html |>
 rvest::html_node(xpath = "/html/body/div/div/div/div/div/div/div[2]/div[2]/div/div/table/tbody")
{xml_missing}
<NA>

还有

html |>
  rvest::html_node("tbody")
html r web rvest
1个回答
0
投票

不幸的是,这种方法行不通。您正在查看的页面中的表格是通过 JavaScript 生成的。

rvest::read_html(url)
调用将检索该页面上的 static 内容,但不会执行任何(动态)JavaScript。

幸运的是,该网站背后有一个 API,因此您可以直接从中获取数据。例如:

library(httr)

params = list(
  `path` = "/provider-characteristics/medicare-provider-supplier-enrollment/medicare-fee-for-service-public-provider-enrollment"
)

res <- httr::GET(url = "https://data.cms.gov/data-api/v1/slug", query = params)

cat(content(res, as="text", encoding = "UTF-8"))
© www.soinside.com 2019 - 2024. All rights reserved.