【发布时间】:2018-06-20 09:09:35
【问题描述】:
我正在尝试从该页面的维基百科表格中抓取一些数据: https://en.wikipedia.org/wiki/Results_of_the_Indian_general_election,_2014 我对这张桌子很感兴趣: 2014年印度大选总结
我还想从表格中提取派对颜色。 到目前为止,这是我尝试过的:
library("rvest")
url <-
"https://en.wikipedia.org/wiki/Results_of_the_Indian_general_election,_2014"
electionstats <- read_html(url)
results <- html_nodes(electionstats, xpath='//*[@id="mw-content-text"]/div/table[79]') %>% html_table(fill = T)
party_colors <- electionstats %>%
html_nodes(xpath='//*[@id="mw-content-text"]/div/table[3]') %>%
html_table(fill = T)
打印出party_colors 不显示任何关于颜色的信息
所以,我尝试了:
party_colors <- electionstats %>% html_nodes(xpath='//*[@id="mw-content-text"]/div/table[3]') %>%
html_nodes('tr')
现在如果我打印出party_colors,我会得到:
[1] <tr style="background-color:#E9E9E9">\n<th style="text-align:left;vertical-align:bottom;" rowspan="2"></th>\n<th style="text-align:left; ...
[2] <tr style="background-color:#E9E9E9">\n<th style="text-align:center;">No.</th>\n<th style="text-align:center;">+/-</th>\n<th style="text ...
[3] <tr>\n<td style="background-color:#FF9933"></td>\n<td style="text-align:left;"><a href="/wiki/Bharatiya_Janata_Party" title="Bharatiya J ...
[4] <tr>\n<td style="background-color:#00BFFF"></td>\n<td style="text-align:left;"><a href="/wiki/Indian_National_Congress" title="Indian Na ...
[5] <tr>\n<td style="background-color:#009900"></td>\n<td style="text-align:left;"><a href="/wiki/All_India_Anna_Dravida_Munnetra_Kazhagam" ...
等等……
但是,现在,我不知道如何从这些数据中提取颜色。我无法将上面的输出转换为 html_table:
html_table(fill = T)
我得到错误:
Error: html_name(x) == "table" is not TRUE
我还尝试了 html_attrs 的各种选项,但我不知道我应该传递的正确属性是什么。
我什至尝试过 SelectorGadget 来尝试找出属性,但如果我选择相关表格的第一列,SelectorGadget 只会显示“td”。
【问题讨论】:
-
FWIW,我无法重现您的代码:
results是一个空列表。我想知道这是否取决于 XPath。似乎在没有id的情况下在维基百科页面上选择一个表格不是超级可重复的,但我想你真的别无选择:/ -
感谢指出....在美化条目时,我无意中删除了xpath中的连字符。现已修复。
标签: r web-scraping rvest