这是一个表的链接,其中包含约 290 种藤本植物名称:
https://www.forestryimages.org/browse/catsubject.cfm?cat=51
我正在尝试阅读表格并保留Common Names
柱子。我尝试过用rvest
像这样的库:
vine_web <- "https://www.forestryimages.org/browse/catsubject.cfm?cat=51"
vine_names <- vine_web %>%
read_html() %>%
html_table()
它读取列名,但不读取表的内容。我已经尝试过多次使用html_nodes
, html_element
,复制 css 选择器,甚至 xpath。
我总是得到这样的结果:
[[1]]
# A tibble: 1 x 4
`Subject Number` `Common Name` `Scientific Name` `Number Of Images`
<lgl> <lgl> <lgl> <lgl>
1 NA NA NA NA
该表是动态格式的,这让我相信html_table()
可能需要更改或者可能是不适合在此处使用的函数。我想知道是否有办法将这个表读入R。
看来您需要 JavaScript 来抓取该表,但有一种解决方法可以以 JSON 形式下载数据。如果您检查并转到网络选项卡,您可以通过一个 API 请求该表的 JSON 格式。如果这能回答您的问题,请告诉我。
library(jsonlite)
json_data <- fromJSON("https://api.bugwood.org/rest/api/subject/.json?fmt=datatable&include=count&cat=51&systemid=2&draw=2&columns%5B0%5D%5Bdata%5D=0&columns%5B0%5D%5Bsearchable%5D=false&columns%5B0%5D%5Borderable%5D=false&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bdata%5D=1&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bdata%5D=2&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bdata%5D=3&columns%5B3%5D%5Bsearchable%5D=false&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&order%5B0%5D%5Bcolumn%5D=1&order%5B0%5D%5Bdir%5D=asc&start=163&length=126&search%5Bvalue%5D=&_=1657572710039")
result <- as.data.frame(json_data$data)
colnames(result) <- json_data$columns
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)