从 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])})
我正在尝试将 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])})