强制rvest识别表格(html_tag(x) ==“table”不为TRUE)

4

我似乎总是无法让html_table()起作用。

这是一个完美的例子: (尝试抓取6场比赛表格)

library(rvest)

hockey <- html("http://www.hockey-reference.com/boxscores/2015/3/6/")

hockey %>%
    html_nodes("#stats .tooltip , #stats td , #stats a") %>%
    html_table()

但我得到的结果是html_tag(x) == "table" is not TRUE。 很明显这是一个表格。

我该如何强制rvest将节点识别为表格?


2
您选择表中的节点而不是表本身,因此结果节点中没有一个实际上是表格。为什么不完全跳过 html_nodes()呢? (您可能需要在html_table()中使用fill = TRUE ...) - joran
@joran 即使是 "#stats td" 也不起作用... - emehex
我觉得你误解了我的意思。运行 out <- hockey %>% html_table(fill = TRUE),然后查看第一个,out[[1]] - joran
同样...hockey %>% html_nodes("#stats") %>% html_table() 也可以正常工作。再次强调,关键是选择表格内部的节点,而不是表格本身。 - joran
@joran 都可以。如果你想把你的评论转换成答案,我可以给你打勾! - emehex
1个回答

10

尝试以下两种方法之一:

hockey %>% html_table(fill = TRUE)

解析页面上的所有表格,或者

hockey %>% html_nodes("#stats") %>% html_table()

只需解析您需要的第一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接