如何在R中使用readHTMLTable读取已注释的HTML表

如何在R中使用readHTMLTable读取已注释的HTML表,html,r,html-parsing,Html,R,Html Parsing,在过去,我可以在R中使用readHTMLTable来获取一些足球统计数据。当今年再次尝试这样做时,这些表格没有显示出来,即使它们在网页上是可见的。以下是一个例子: 当我查看页面的源代码时,所有的表都被注释掉了(我怀疑这就是为什么readHTMLTable没有找到它们的原因) 示例:在源代码中搜索“team_stats” <!-- <div class="table_outer_container"> <div class="overthrow

在过去,我可以在R中使用readHTMLTable来获取一些足球统计数据。当今年再次尝试这样做时,这些表格没有显示出来,即使它们在网页上是可见的。以下是一个例子:

当我查看页面的源代码时,所有的表都被注释掉了(我怀疑这就是为什么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>

事实上,如果使用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
库(rvest)
url%read_html()%>%#解析html
html#u节点(“#所有#u团队_统计数据”)%>%#选择带注释的节点
html#u节点(xpath='comment()')%>%#在节点内选择注释
html_text()%>%#以文本形式返回内容
读取html()%>%#将文本解析为html
html_节点('表格')%>%#选择表格节点
html_table()#解析表并返回data.frame
##车房
##1第一轮21 21
##2拉什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个麻袋场3-18 2-19
##5净传球码176 159
##共6码333307
##7次失球0-01-1失利
##8次失误1 3
##9场点球8-85 4-22
##第三节倒数第10节9-15 5-10
##11第四向下转换0-0 1-1
##12占有时间32:19 27:41

可能在解析之前的原始文本中-
gsub
-将
注释掉?如果注释掉了,它就不再是一个表,只是附带的文本。我也不认为您认为注释掉的表实际上是注释掉的。