如何在 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——出&lt;!----&gt; 如果被注释掉,就不再是表格,只是附带的文字。 我也不认为你认为被注释掉的表格实际上被注释掉了。 【参考方案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 表格的主要内容,如果未能解决你的问题,请参考以下文章

R软件如何将爬虫得到的数据制成表格

R语言批量读文件

R语言读数据

如何在 Power BI 中使用 Python/R 生成的表?

如何将 sqlite 文件中的 blob 数据读取为可读格式?

为啥自己的r语言中读不了xlsx文件