我正在抓取一个“草率”节点,其中包含相同数据的多个元素。下面的代码从列出唱片集的页面上刮下城市日期。我只希望每个专辑的第一个城市日期实例,但是我不确定如何编写代码,以便仅返回第一个城市日期实例。
p{
position:relative;
}
答案 0 :(得分:1)
要抓取的页面中没有太多层次结构。这意味着您将需要查看其他结构。似乎每个日期前面都有一个h3
标头。知道了这一点,我们可以建立一个索引来获取您想要的值。
首先获取所有h3
和.date
节点:
nodes <- read_html("https://www.jazzdisco.org/atlantic-records/catalog-1200-series/") %>%
html_nodes("h3,.date")
现在为索引。我们想找到h3
后跟.date
的位置。我已经使用html_name
和paste
函数来测试结构,但是您可以根据需要构建它。
index <- c()
for (n in 1:(length(nodes) - 1)) {
if (paste(html_name(nodes[n]), html_name(nodes[n+1]), sep = "_") == 'h3_div') {
index <- c(index, n)
}
}
现在使用索引,我们可以获得.date
节点。我的测试与h3
节点匹配,因此我们必须加1才能获得.date
citydate <- nodes[index + 1] %>% html_text()