刚刚在《哈德利的伟大》上了解到并第一次尝试它。
我想擦掉(然后绘制)从谷歌搜索结果返回的棒球积分榜。
我的问题是我无法进入我在浏览器插件中看到的表。

library(rvest)
library(magrittr) # for %>% operator

( g_search <-html_session(url = "http://www.google.com/?q=mlb+standings",
                          add_headers("user-agent" = "Mozilla/5.0")) )
# <session> http://www.google.com/?q=mlb+standings
#   Status: 200
#   Type:   text/html; charset=UTF-8
#   Size:   52500

此搜索应返回一个页,其中表隐藏在许多层之下,但由rvest唯一标识。在webinar上快速停留会告诉我(我认为)“div.tb_strip”是捕获此表(可能还有其他垃圾)的有效CSS选择器。实际上,使用Firebug的CSS选择器,我可以看到完整的路径:
# Use Firebug "Copy CSS Path" and paste into table_path
table_path <- "html body#gsr.srp.tbo.vasq div#main div#cnt.big div.mw div#rcnt div.col div#center_col div#res.med div#search div div#ires ol#rso li.g.tpo.knavi.obcontainer div.kp-blk div#uid_0.r-iCGI_bFBahQE.xpdbox.xpdopen div div.lr_container.mod div#lr_tab_unit_uid_1.tb_u.r-igQv_rxlT08k div.tb_view div.tb_strip"

但是,由于返回空列表,以下访问此表的尝试失败。
( standings <- g_search %>%
    html_nodes("div.tb_strip") %>%
    html_table()
  ) #returns empty list

内容似乎没有进入g_搜索,所以我还不知道CSS选择器是否起作用。
grep("tb_strip",html_text(read_html("http://www.google.com/?q=mlb+standings")) ) # empty

它去哪儿了?
泰姆

最佳答案

下面是一个简单站点的示例。。。

library("rvest")
url <- "http://sports.yahoo.com/mlb/standings/"
html(url) %>% html_nodes(".yui3-tabview-content") %>% html_nodes("table") %>%html_table

07-25 22:07