Ich versuche, einige Tennis-Statistiken mit r von mehreren Links mit rvest und selectorgadget zu kratzen. Seite Ich schabe aus ist http://www.atpworldtour.com/en/scores/archive/stockholm/429/2017/results und es gibt 29 Links, die wie folgt aussehen: "http://www.atpworldtour.com/en/scores/2017/429/MS001/match-stats". Alle Links sehen gleich aus, aber ändern sich von MS001-MS029. Mit dem untenstehenden Code bekomme ich das gewünschte Ergebnis mit nur den ersten 9 Links. Ich sehe das Problem, weiß aber nicht, wie ich es korrigieren kann. Die ersten 9 Links haben Double 00 und der Rest hat Single 0. Der 10. Link sollte MS010 sein. Jede Hilfe mit dieser sehr geschätzt.Web scrape mehrere Links mit r
library(xml)
library(rvest)
library(stringr)
round <- 1:29
urls <- paste0("http://www.atpworldtour.com/en/scores/2017/429/MS00", round,
"/match-stats")
aces <- function(url) {
url %>%
read_html() %>%
html_nodes(".percent-on:nth-child(3) .match-stats-number-left span") %>%
html_text() %>%
as.numeric()
}
results <- sapply(urls, aces)
results
$`http://www.atpworldtour.com/en/scores/2017/429/MS001/match-stats`
[1] 9
$`http://www.atpworldtour.com/en/scores/2017/429/MS002/match-stats`
[1] 8
$`http://www.atpworldtour.com/en/scores/2017/429/MS003/match-stats`
[1] 5
$`http://www.atpworldtour.com/en/scores/2017/429/MS004/match-stats`
[1] 4
$`http://www.atpworldtour.com/en/scores/2017/429/MS005/match-stats`
[1] 8
$`http://www.atpworldtour.com/en/scores/2017/429/MS006/match-stats`
[1] 9
$`http://www.atpworldtour.com/en/scores/2017/429/MS007/match-stats`
[1] 2
$`http://www.atpworldtour.com/en/scores/2017/429/MS008/match-stats`
[1] 9
$`http://www.atpworldtour.com/en/scores/2017/429/MS009/match-stats`
[1] 5
$`http://www.atpworldtour.com/en/scores/2017/429/MS0010/match-stats`
numeric(0)
Das funktioniert gut, danke. Tatsächlich existieren 3 Links MS016, MS020 und MS027 nicht. Darf ich nachfragen und fragen, ob es einen Weg gibt, nur die Verbindungen zwischen 1:29 zu kratzen? – mrsama
sicher, verwenden Sie IDs <- c (1: 15,17: 19,21: 26,28: 29), um die URLs zu generieren. –
@mrsama - Wenn Sie die von mir zur Verfügung gestellte Lösung verwenden konnten, akzeptieren Sie bitte meine Antwort. –