首页 > 解决方案 > 从 R 中的 html 表输入标记中读取数据

问题描述

我正在尝试将内部网页中的 HTML 表读入 R。

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

html表的结构如下:

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

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

我一直在考虑编写一个解析器,将 each 的内容<td>扔到相应的列中,然后使用正则表达式匹配name="Attribute A"并返回值。但是,这似乎很复杂,我希望有一个更有效的选择:)

标签: rrvest

解决方案


也许这有助于开始:

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() 

推荐阅读