Ich versuche, HTML-Tabellen von den verschiedenen Fußballmannschaften zu kratzen. Hier ist die Tabelle, die ich kratzen möchte, aber ich möchte die gleiche Tabelle von allen Teams abkratzen, um letztendlich eine einzelne CSV-Datei zu erstellen, die die Spielernamen und ihre Daten enthält.Versuch, rvest zu verwenden, um einen Befehl zu wiederholen, um Tabellen von mehreren Seiten zu schaben
http://www.pro-football-reference.com/teams/tam/2016_draft.htm
# teams
teams <- c("ATL", "TAM", "NOR", "CAR", "GNB", "DET", "MIN", "CHI", "SEA", "CRD", "RAM", "NWE", "MIA", "BUF", "NYJ", "KAN", "RAI", "DEN", "SDG", "PIT", "RAV", "SFO", "CIN", "CLE", "HTX", "OTI", "CLT", "JAX", "DAL", "NYG", "WAS", "PHI")
# loop
for(i in teams) {
url <-paste0("http://www.pro-football-reference.com/teams/", i,"/2016-snap-counts.htm#snap_counts::none", sep="")
webpage <- read_html(url)
# grab table
sb_table <- html_nodes(webpage, 'table')
html_table(sb_table)
head(sb_table)
# bind to dataframe
df <- rbind(df, sb_table)
}
Ich bin immer ein Fehler dachte, dass ich sowohl CSS oder XPath und nicht verwenden sollte, aber ich kann nicht herausfinden, wo das Problem genau ist (ich vermute, das html_nodes Befehl). Kann mir jemand helfen, dieses Problem zu beheben?
Wo ist '' df'' aus? –
Basierend auf Ihrer Beispiel-URL sollten die Abkürzungen in 'teams' nicht kleingeschrieben sein? – neilfws
Sie müssen 'df <-data.frame()' außerhalb Ihrer Schleife definieren oder Sie überschreiben es bei jeder Iteration. – Dave2e