Ich versuche rvest
zu verwenden, um das Geburtsdatum für PGA-Golfer zu extrahieren. Versuchen wir es mit Stuart Appleby. Hier ist sein Profil auf der ESPN Website http://espn.go.com/golf/player/_/id/11/stuart-appleby. Bemerke seinen DOB neben seinem Kopfschuss.RVest Fehler: Typ 'externalptr'
library("rvest")
url <- "http://espn.go.com/golf/player/_/id/11/stuart-appleby"
li_node <- url %>% html %>% html_nodes("li")
Sein DOB ist in Element 22 von li_node enthalten. Idealerweise würde ich [[22]] in meinem Programm nicht fest programmieren, aber selbst wenn ich das tue, stoße ich auf Fehler.
li_node[[22]]
zeigt die Informationen, die ich will, aber Sachen wie:
word(li_node[[22]], ...)
substr(li_node[[22]], ...)
pluck(li_node, 22)
alle geben einen Fehler zurück:
> word(li_node[[22]], 1)
Error in rep(string, length = n) :
attempt to replicate an object of type 'externalptr'
> substr(li_node[[22]], 1, 2)
Error in as.vector(x, "character") :
cannot coerce type 'externalptr' to vector of type 'character'
> pluck(li_node, 22)
Error in FUN(X[[1L]], ...) :
object of type 'externalptr' is not subsettable
Gibt es für mich eine einfache Art und Weise, dass DOB mit rvest
zu greifen?
Sehr gut. Jetzt, um den "1. Mai 1971" Teil zu extrahieren, kann ich tun: 'dob <- url %>% html%>% html_nodes (xpath = '// li [enthält (.," Alter ")]')%>% html_text () substr (dob, 11, nchar (dob) - 10) ' – hossibley
bearbeitete Antwort, um einen str_extract Teil hinzuzufügen, um die Datumszeichenkette zu erhalten ... – cory
Noch besser! Vielen Dank! – hossibley