我正在尝试抓取不同的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,)
我不知道如何为每个网址写一张纸
预先感谢:-)
答案 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包含一个工作表。