我正在尝试使用rvest从表中提取链接。该表还包括没有链接的行。由于我需要将链接链接到原始表,因此需要包括空白行。 html_attr(“ href”)跳过了这些行,因此无法合并到原始表的链接。
因此,例如,此代码获取具有普通文本的表/
library("rvest")
url <- "http://en.wikipedia.org/wiki/List_of_The_Simpsons_episodes"
simp <- url %>%
read_html() %>%
html_nodes(xpath='//*[@id="mw-content-text"]/div/table[3]') %>%
html_table() %>%
extract2(1)
此代码提取链接:
simp2 <- url %>%
read_html() %>%
html_nodes(xpath='//*[@id="mw-content-text"]/div/table[3]/tbody/tr/td[3]/a')%>%
html_attr("href")
然后我想做
cbind(simp1,simp2)
但是,由于该表由23行组成,并且只有13个链接,因此无法正常工作。有人知道如何让html_attr包含空白行,以便向量simp2也具有23个值(带有10个NA或类似的值)吗?或具有其他功能?
答案 0 :(得分:1)
您可以遍历节点集(无需a
!)
library(purrr)
simp2 <- url %>%
read_html() %>%
html_nodes(xpath='//*[@id="mw-content-text"]/div/table[3]/tbody/tr/td[3]') %>%
map_chr(~html_attr(html_node(., "a"), "href"))
为您提供长度为23的向量:
str(simp2)
# chr [1:23] "/wiki/Lance_Kramer" "/wiki/Mark_Kirkland" ...