我需要使用R和rvest库从3个页面(每个页面有150个链接)收集链接。我使用了for循环来浏览页面。我知道这是一个非常基本的问题,已经在其他地方得到了回答:跨多个页面的R Web抓取 使用Rvest进行刮擦和循环我尝试了以下代码的不同版本。他们大多数人都工作了,但只返回了50个链接,而不是150个链接
library(rvest)
baseurl <- "https://www.ebay.co.uk/sch/i.html?_from=R40&_nkw=chain+and+sprocket&_sacat=0&_pgn="
n <- 1:3
nextpages <- paste0(baseurl, n)
for(i in nextpages){
html <- read_html(nextpages)
links <- html %>% html_nodes("a.vip") %>% html_attr("href")
}
该代码预计将返回全部150个而不是仅返回50个。
您将在每次迭代中覆盖links变量,因此最终只能获得最后50个链接。
但是您正在循环使用'i'变量,而您的read_html()函数使用nextpages变量,该变量实际上是3个URL的向量。您应该得到一个错误。
尝试这个:
links <- c()
for(i in nextpages){
html <- read_html(i)
links <- c(links, html %>% html_nodes("a.vip") %>% html_attr("href"))
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句