从 R 中的 html table 输入标签读取数据

Reading data from an html table input tag in R

我正在尝试将 HTML-table 从内部网页读入 R。

对我来说不幸的是,<td> 的结构很奇怪,所以我不能使用 rvest 包中的 html_table() 来为我做这件事。

html table 的结构如下:

<table>
   <tr>
      <td>
         <input disabled name="Attribute A" value="15.00">
      </td>
   </tr>
</table>

然后每行重复多次 <td>。我想提取每个条目的值,我只是有点不确定如何。

我一直在考虑编写一个解析器,将每个 <td> 的内容放入相应的列中,然后使用正则表达式匹配 name="Attribute A" 和 return 的值。然而,这看起来很复杂,我希望有一个更有效的选择:)

也许这有助于开始:

your_url <- read_html(url)
html_nodes(your_url, xpath = '//input') %>% html_attr('name')

或更一般的:

your_url <- read_html(url)

#option 1
html_nodes(your_url, xpath = '//td') %>%
  html_text() 
    
#option 2
html_nodes(your_url, xpath = '//table//tr') %>%
  html_text() 

我最后做的是:

vars = c("name", "value") #Define attributes you want to keep

file.Read <- read_html(file)

file.Read %>% 
   html_nodes(xpath = '//input') %>%
   html_attrs() %>%
   lapply(function(x) {unlist(x[vars])})