Wie kann ich eine Schleife verwenden, um Website-Daten für mehrere Webseiten in R? @ Zu kratze

Ich möchte eine Schleife anwenden, um Daten von mehreren Webseiten in R zu entfernen. Ich kann die Daten für eine Webseite entfernen. Wenn ich jedoch versuche, eine Schleife für mehrere Seiten zu verwenden, wird ein frustrierender Fehler angezeigt. Ich habe stundenlang herumgebastelt, ohne Erfolg. Jede Hilfe wäre sehr dankbar !!!

Das funktioniert

###########################
# GET COUNTRY DATA
###########################

library("rvest")

site <- paste("http://www.countryreports.org/country/","Norway",".htm", sep="")
site <- html(site)

stats<-
    data.frame(names =site %>% html_nodes(xpath="//*/td[1]") %>% html_text() ,
         facts =site %>% html_nodes(xpath="//*/td[2]") %>% html_text() ,
         stringsAsFactors=FALSE)

stats$country <- "Norway"
stats$names   <- gsub('[\r\n\t]', '', stats$names)
stats$facts   <- gsub('[\r\n\t]', '', stats$facts)
View(stats)

Wenn ich jedoch versuche, dies in eine Schleife zu schreiben, erhalte ich eine Fehlermeldung

###########################
# ATTEMPT IN A LOOP
###########################

country<-c("Norway","Sweden","Finland","France","Greece","Italy","Spain")

for(i in country){

site <- paste("http://www.countryreports.org/country/",country,".htm", sep="")
site <- html(site)

stats<-
data.frame(names =site %>% html_nodes(xpath="//*/td[1]") %>% html_text() ,
         facts =site %>% html_nodes(xpath="//*/td[2]") %>% html_text() ,
       stringsAsFactors=FALSE)

stats$country <- country
stats$names   <- gsub('[\r\n\t]', '', stats$names)
stats$facts   <- gsub('[\r\n\t]', '', stats$facts)

stats<-rbind(stats,stats)
stats<-stats[!duplicated(stats),]
}

Error

Error: length(url) == 1 is not TRUE
In addition: Warning message:
In if (grepl("^http", x)) { :
  the condition has length > 1 and only the first element will be used

Antworten auf die Frage(6)

Ihre Antwort auf die Frage