如何在 R 中使用 readHTMLTable 读取注释掉的 HTML 表格
Posted
技术标签:
【中文标题】如何在 R 中使用 readHTMLTable 读取注释掉的 HTML 表格【英文标题】:How to read a commented out HTML table using readHTMLTable in R 【发布时间】:2017-01-18 02:50:46 【问题描述】:过去,我可以在 R 中使用 readhtmlTable 来获取一些足球统计数据。今年再次尝试这样做时,表格没有出现,即使它们在网页上可见。这是一个例子:http://www.pro-football-reference.com/boxscores/201609080den.htm
当我查看页面的源代码时,所有表格都被注释掉了(我怀疑这就是 readHTMLTable 没有找到它们的原因)。
示例:在源代码中搜索“team_stats”...
<!--
<div class="table_outer_container">
<div class="overthrow table_container" id="div_team_stats">
<table class="stats_table" id="team_stats" data-cols-to- freeze=1><caption>Team Stats Table</caption>
问题:
表格如何在源代码中被注释掉而在浏览器中显示?
有没有办法使用 readHTMLTable(或其他方法)读取注释掉的表格?
【问题讨论】:
也许——在解析前的原始文本中——gsub
——出<!--
和-->
?
如果被注释掉,就不再是表格,只是附带的文字。
我也不认为你认为被注释掉的表格实际上被注释掉了。
【参考方案1】:
事实上,如果你使用 XPath comment()
选择器,你可以抓住它:
library(rvest)
url <- 'http://www.pro-football-reference.com/boxscores/201609080den.htm'
url %>% read_html() %>% # parse html
html_nodes('#all_team_stats') %>% # select node with comment
html_nodes(xpath = 'comment()') %>% # select comments within node
html_text() %>% # return contents as text
read_html() %>% # parse text as html
html_node('table') %>% # select table node
html_table() # parse table and return data.frame
## CAR DEN
## 1 First Downs 21 21
## 2 Rush-Yds-TDs 32-157-1 29-148-2
## 3 Cmp-Att-Yd-TD-INT 18-33-194-1-1 18-26-178-1-2
## 4 Sacked-Yards 3-18 2-19
## 5 Net Pass Yards 176 159
## 6 Total Yards 333 307
## 7 Fumbles-Lost 0-0 1-1
## 8 Turnovers 1 3
## 9 Penalties-Yards 8-85 4-22
## 10 Third Down Conv. 9-15 5-10
## 11 Fourth Down Conv. 0-0 1-1
## 12 Time of Possession 32:19 27:41
【讨论】:
以上是关于如何在 R 中使用 readHTMLTable 读取注释掉的 HTML 表格的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Power BI 中使用 Python/R 生成的表?