rvest + 选择器小工具 return 空列表
rvest + selector gadget return empty list
我正在尝试从维基百科表格中抓取政治背书数据(一个非常通用的抓取任务),但在选择器小工具识别的 css 路径上使用 rvest
的常规过程失败了。
维基页面是 here, and the css path .jquery-tablesorter:nth-child(11) td
seems to select the right part of the page
有了css,我一般只会用rvest
直接访问这些数据,如下:
"https://en.wikipedia.org/wiki/Endorsements_for_the_Republican_Party_presidential_primaries,_2012" %>%
html %>%
html_nodes(".jquery-tablesorter:nth-child(11) td")
但是这个returns:
list()
attr(,"class")
[1] "XMLNodeSet"
你有什么想法吗?
这可能有帮助:
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()
此代码将您请求的 table 作为数据帧存储在变量 tab
中。
> View(tab)
我发现如果我使用 Chrome 中的 xpath 建议,它会起作用。
Chrome 建议使用 //*[@id="mw-content-text"]/table[4]
的 xpath
然后我可以运行如下
library(rvest)
URL <-"https://en.wikipedia.org/wiki/Endorsements_for_the_Republican_Party_presidential_primaries,_2012"
tab <- URL %>%
read_html %>%
html_node(xpath='//*[@id="mw-content-text"]/table[4]') %>%
html_table()
我正在尝试从维基百科表格中抓取政治背书数据(一个非常通用的抓取任务),但在选择器小工具识别的 css 路径上使用 rvest
的常规过程失败了。
维基页面是 here, and the css path .jquery-tablesorter:nth-child(11) td
seems to select the right part of the page
有了css,我一般只会用rvest
直接访问这些数据,如下:
"https://en.wikipedia.org/wiki/Endorsements_for_the_Republican_Party_presidential_primaries,_2012" %>%
html %>%
html_nodes(".jquery-tablesorter:nth-child(11) td")
但是这个returns:
list()
attr(,"class")
[1] "XMLNodeSet"
你有什么想法吗?
这可能有帮助:
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()
此代码将您请求的 table 作为数据帧存储在变量 tab
中。
> View(tab)
我发现如果我使用 Chrome 中的 xpath 建议,它会起作用。
Chrome 建议使用 //*[@id="mw-content-text"]/table[4]
然后我可以运行如下
library(rvest)
URL <-"https://en.wikipedia.org/wiki/Endorsements_for_the_Republican_Party_presidential_primaries,_2012"
tab <- URL %>%
read_html %>%
html_node(xpath='//*[@id="mw-content-text"]/table[4]') %>%
html_table()