R-抓取多个网址并在不同的excel数据表中写入每个数据网址

时间:2019-04-05 08:27:13

标签: r lapply rvest scrape

我正在尝试抓取不同的URL,并将数据写入同一Excel文件中,但每个URL都放在一个页面中。

我的代码是这样的:

#install.packages("rvest")

library(XLConnect)
library(rvest)
{
 for(i in c("2086","2167","2204")) {
   url<-paste0("https://www.silversanz.com/producto/",i,)

}
 dades<-read_html(url)

 nom<-dades %>% html_nodes("h1.title") %>% html_text() %>% trimws()
 preu<-dades %>% html_nodes("p.price--current") %>% html_text() %>% trimws()

 info<-as.data.frame(cbind(nom,preu))

 writeWorksheetToFile(file="C:/xxx.xxx.xlsx",
                   data=info,
                   sheet= "test",
                   clearSheets=TRUE
 )
}

我有两个问题:

  • 此代码无效->

     for(i in c("2086","2167","2204")) {
     url<-paste0("https://www.silversanz.com/producto/",i,)
    
  • 我不知道如何为每个网址写一张纸

预先感谢:-)

1 个答案:

答案 0 :(得分:0)

您使用了错误的括号。您编写的for-loop遍历数字并将最后一个保存在url中。您的for-loop应该包含所有代码:

library(XLConnect)
library(rvest)

for(i in c("2086","2167","2204")) {

   url<-paste0("https://www.silversanz.com/producto/",i)

   dades<-read_html(url)

   nom<-dades %>% html_nodes("h1.title") %>% html_text() %>% trimws()
   preu<-dades %>% html_nodes("p.price--current") %>% html_text() %>% trimws()

   info<-as.data.frame(cbind(nom,preu))

   writeWorksheetToFile(file="C:/xxx.xxx.xlsx",
                     data=info,
                     sheet= i,
                     clearSheets=TRUE)
}

对于工作表,现在一切都在循环中,只需使用i作为工作表名称,以使每个url包含一个工作表。