rvest + selector小工具返回空列表

时间:2015-08-24 15:48:15

标签: r web-scraping rvest

我正试图从维基百科表中搜集政治认可数据(一个非常通用的抓取任务),并且在选择器小工具识别的css路径上使用rvest的常规过程失败。

维基页面为here,而css路径.jquery-tablesorter:nth-child(11) td似乎选择了页面的右侧部分right part of wikitable selected

使用css,我通常会使用rvest直接访问这些数据,如下所示:

"https://en.wikipedia.org/wiki/Endorsements_for_the_Republican_Party_presidential_primaries,_2012" %>% 
   html %>% 
   html_nodes(".jquery-tablesorter:nth-child(11) td")

但这会返回:

list()
attr(,"class")
[1] "XMLNodeSet"

你有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这可能会有所帮助:

library(rvest)
URL <- "https://en.wikipedia.org/wiki/Endorsements_for_the_Republican_Party_presidential_primaries,_2012" 
tab <- URL %>% read_html %>%  
            html_node("table.wikitable:nth-child(11)") %>% html_table()

此代码将您在数据框中请求的表存储在变量tab

> View(tab)

enter image description here

答案 1 :(得分:1)

我发现如果我使用Chrome提供的xpath建议,那就可以了。

Chrome建议使用//Page transition .pageTransition-enter { opacity: 0.01; } .pageTransition-enter.pageTransition-enter-active { animation: fadeIn 1s ease-in; } .animation-leave { opacity: 1; } .pageTransition-leave.pageTransition-leave-active { animation: fadeIn 3s ease-in; } .pageTransition-appear { opacity: 0.01; } .pageTransition-appear.pageTransition-appear-active { animation: opacity 5s ease-in; }

的x路径

然后我可以运行如下

//*[@id="mw-content-text"]/table[4]