Hola Sergio: Y si quieres ir preparando camino para dominar este mundillo de manera más fácil, merece la pena (por experiencia) pasar de usar los paquetes xml y/o xml2 a usar "rvest" [1], que permite usar expresiones de tipo XPATH, como usas tu ahora, y las más fáciles de usar para identificar y gestionar nodos de html, las de los selectores css, que con la ayuda del "Selectorgadget" [2], la cosa se pone más fácil aún, y de paso, te sirve para empezar a sacarle partido al ecosistema de paquetes de R de Hadley Wickham [3]. Yo al menos finalmente me he puesto y la cosa pinta bien (este tipo es un crack [4]).
Saludos Xavier [1] https://github.com/hadley/rvest [2] https://cran.r-project.org/web/packages/rvest/vignettes/selectorgadget.html [3] http://hadley.github.io/ [4] http://datascience.la/a-conversation-with-hadley-wickham-the-user-2014-interview/ El 19/01/16 a les 09:48, Sergio Castro ha escrit: > Muchas gracias a ambos!!!! Las dos soluciones me han funcionado. > > Un saludo. > > El día 18 de enero de 2016, 18:35, Carlos Ortega > <[email protected]> escribió: >> Hola, >> >> Pero, si ya casi lo tienes... te quedan un par de pasos y ya está... >> >> Simplemente tienes que transformar "puntos_nodo" a bien un data.frame aunque >> quedará lleno de cosas que no te hacen falta o directamente guardar >> "puntos_nodo" a un vector de strings. >> Y luego sobre lo anterior, puedes hacer un barrido buscando "semana" y >> "bar". En el caso de que tras una semana no se encuentre un "bar" pones una >> condición lógica para que en ese caso "bar" sea cero o NA, según prefieras. >> >> Saludos, >> Carlos Ortega >> www.qualityexcellence.es >> >> El 18 de enero de 2016, 17:29, Sergio Castro >> <[email protected]> escribió: >>> Buenas tardes, >>> >>> Quiero extraer datos de una web en la que ser relaciona la semana con >>> la puntuación obtenida por un jugador. Ahora mismo llego a obtener >>> elnodo en el que se relacionan la semana con la puntuación obtenida, >>> pero no soy capaz de extraer esa informacion en una tabla de dos >>> columna (semana, puntuacion) teniendo en cuenta que puede que haya >>> semanas que no haya puntuado (en el ejemplo, la segunda semana). De >>> momento lo estoy obteniendo de la siguiente forma: >>> >>> url_jugador<-"http://localhost:8080/jugadores/Luis" >>> txt_jugador <- getURL(url_jugador) >>> doc<-htmlTreeParse(txt_jugador, useInternalNodes = TRUE) >>> puntos_nodo<- xpathApply(doc, "//table[@class='points']/tr") >>> puntos_nodo >>> [[1]] >>> <tr> >>> <td class="semana">1</td> >>> <td class="neg"/> >>> <td> >>> <div class="bar">6</div> >>> </td> >>> >>> </tr> >>> [[2]] >>> <tr> >>> <td class="semana">2</td> >>> <td class="neg"/> >>> <td/> >>> </tr> >>> [[3]] >>> <tr> >>> <td class="semana">3</td> >>> <td class="neg"/> >>> <td> >>> <div class="bar">9</div> >>> </td> >>> </tr> >>> attr(,"class") >>> [1] "XMLNodeSet" >>> >>> ¿Veis alguna forma de sacar la información que necesito? >>> >>> Muchas gracias. >>> Un saludo. >>> _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
