Loop, um Daten von Wikipedia in R @ zu kratz

Ich versuche, Daten zu Prominenten / Sterbefällen für die Analyse zu extrahieren. Wikipedia hat eine sehr regelmäßige Struktur zu ihren HTML-Pfaden in Bezug auf bemerkenswerte Sterbedaten. Es sieht aus wie

https://en.wikipedia.org/wiki/Deaths_in_"MONTH"_"YEAR"

Dieser Link führt zum Beispiel zu den bemerkenswerten Todesfällen im März 2014.

https://en.wikipedia.org/wiki/Deaths_in_March_2014

Ich habe den CSS - Speicherort der Listen "" gefunden, die ich "" für einen bestimmten Link erfolgreich extrahieren muss. Jetzt versuche ich, eine Schleife zu schreiben, um die Monate und zu durchlaufen Alle Jahre, die ich wähle. Ich denke, es ist eine ziemlich einfache verschachtelte Schleife, aber ich erhalte Fehler, wenn ich sie erst 2015 teste.

library(rvest)
data = data.frame()
 mlist = c("January","February","March","April","May","June","July","August",
              "September","October","November","December")

for (y in 2015:2015){
  for (m in 1:12){
    site = read_html(paste("https://en.wikipedia.org/wiki/Deaths_in_",mlist[m],
           "_",y,collapse=""))
    fnames = html_nodes(site,"#mw-content-text h3+ ul li")
    text = html_text(fnames)
    data = rbind(data,text,stringsAsFactors=FALSE)
      }
 }

Wenn ich die Zeile auskommentiere:

data = rbind(data,text,stringsAsFactors=FALSE)

no-Fehler werden zurückgegeben, sodass ein eindeutiger Zusammenhang mit diesem Bit besteht. Ich poste meinen gesamten Code auch für andere Kommentare. Ziel ist es, viele Jahre durchzuschleifen und sich dann auf die Verteilung über die Jahre und Monate zu konzentrieren. Dafür muss ich nur das Alter, den Monat und das Jahr des Todes angeben.

Vielen Dank

EDIT: Es handelt sich leider um technische Warnungen, nicht um Fehler. Ich bekomme über 50 davon und wenn ich versuche, "Daten" zu betrachten, ist das ein riesiges Durcheinander.

Wenn ich diesen Code nicht als Schleife für eine bestimmte URL ausführe, funktioniert er einwandfrei und gibt eine lesbare Ausgabe zurück.

site = read_html("https://en.wikipedia.org/wiki/Deaths_in_January_2015")
fnames = html_nodes(site,"#mw-content-text h3+ ul li")
text = html_text(fnames)

Hier sind ein paar Zeilen aus diesem Datensatz:

text[1:5]
[1] "Barbara Atkinson, 88, British actress (Z-Cars).[1]"                                         
[2] "Staryl C. Austin, 94, American air force brigadier general.[2]"                             
[3] "Ulrich Beck, 70, German sociologist, heart attack.[3]"                                      
[4] "Fiona Cumming, 77, British television director (Doctor Who).[4]"                            
[5] "Eric Cunningham, 65, Canadian politician, Ontario MPP for Wentworth North (1975–1984).[5]"

Antworten auf die Frage(4)

Ihre Antwort auf die Frage