Hola buenos días: Os remito una duda (en un documento word para su mejor expresión) sobre el uso de la libreria rvest. Mi problema es que como no soy informatico me pierdo un poco, he visto los ejemplos que hay colgados y los he seguido, pero el tema es que quiero acceder a los datos del INE, que en ocasiones estan un poco escondidos con menu de selecciones y no se como hacerlo con rvest para llegar hasta la solucion final. Lo anterior si lo he hecho (y lo sigo haciendo) con Rselenium gracias a que use un ejemplo de Gregorio Serrano, pero quiero pasar esos primeros codigos a rvest y por eso es por lo que solicito vuestra ayuda Remito fichero adjunto para aclarar un ejemplo de los que uso Un saludo y muchas gracias ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20151223/e40ed9e3/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: Duda_Uso_rvest.docx Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document Size: 39475 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20151223/e40ed9e3/attachment-0001.bin>
Estimado Francisco Rodríguez Creo que del ejemplo de Gregorio Serrano tomé algo, no recuerdo todo y no alcanzo a buscarlo y leerlo, sin embargo le envío dos partes que puede copiar y pegar, posiblemente de estos pueda tomar algo, no respondo su pregunta pero espero que sirva para que usted pruebe con las modificaciones necesarias y llegar a su objetivo. library(rvest) url <- "https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm" s <- html_session(url) f0 <- html_form(s) f1 <- set_values(f0[[2]], priceDate.year=2014, priceDate.month=12, priceDate.day=15) test <- submit_form(s, f1) b <- test reviews <- b %>% html_nodes(".data1") %>% html_text() reviews reviews <- b %>% html_nodes(".data1") %>% html_table() reviews library(rvest) Pagina.R <- html(x = "http://www.verema.com/vinos/portada") text <- Pagina.R %>% # html_nodes(xpath='//*[@id="producto_tipo_producto_id"]')%>% html_nodes(xpath='//*[@id="producto_tipo_producto_id"]/option')%>% html_text() text values <- Pagina.R %>% # html_nodes(xpath='//*[@id="producto_tipo_producto_id"]')%>% html_nodes(xpath='//*[@id="producto_tipo_producto_id"]/option')%>% # html_attr("option value") html_attr("value") values Res <- data.frame(text = text, values = values, stringsAsFactors = FALSE) Res Si hay un combobox, lista desplegable, etc., me encontré con problemas que no supe resolver, en algunos casos traía el resultado, en otros el php, o el php no se ejecutaba en el servidor para realizar la consulta, algo fallaba, por como venían los resultados supongo que estaba escrito con Dreamweaver (algo medio obsoleto pero tiene la información). Le envié un correo sobre eso al autor de rvest, me respondió pero no me dijo nada sobre el problema, si pudo solucionarlo, si escribí mal mi código, desconozco, en unos días tendré que ejecutar nuevamente esos archivos y resolver ese problema. Javier Marcuzzi De: Francisco Rodríguez Enviado: miércoles, 23 de diciembre de 2015 8:33 Para: r-help-es en r-project.org Asunto: [R-es] Instrucciones uso rvest Hola buenos días: Os remito una duda (en un documento word para su mejor expresión) sobre el uso de la libreria rvest. Mi problema es que como no soy informatico me pierdo un poco, he visto los ejemplos que hay colgados y los he seguido, pero el tema es que quiero acceder a los datos del INE, que en ocasiones estan un poco escondidos con menu de selecciones y no se como hacerlo con rvest para llegar hasta la solucion final. Lo anterior si lo he hecho (y lo sigo haciendo) con Rselenium gracias a que use un ejemplo de Gregorio Serrano, pero quiero pasar esos primeros codigos a rvest y por eso es por lo que solicito vuestra ayuda Remito fichero adjunto para aclarar un ejemplo de los que uso Un saludo y muchas gracias [[alternative HTML version deleted]]
Hola Javier muchas gracias, he probado con la primera de las opciones que parece más sencilla: En principio su código funciona y entiendo lo que hace, el problema es cuando trato de adaptarlo a lo que quiero, yo hago lo siguiente: library(rvest) url <- "http://www.ine.es/jaxiT3/Tabla.htm?t=10280&L=0" s <- html_session(url)f0 <- html_form(s)f1 <- set_values(f0[[2]], busc_70710 = '442439', busc_70711 = '442458', busc_70712 = '442460', busc_periodo = '10~2015') test <- submit_form(s, f1, submit = 'ct') Pero creo que hay algo que estoy haciendo mal, porque para el caso del INE no me sale, cuando llego a la opción del submit_form Creo que está en la forma de asignar los valores anteriores. Voy a probar con varias opciones a ver si en estos días lo consigo, pero con tus indicaciones, al menos me has sacado un poco de la duda aunque aún sigo en ella parcialmente. Si se te ocurre (o se os ocurre) algo más os lo agradezco. Por mi parte cuando lo consiga (si lo logro) comparto el código Un saludo y gracias To: fjroar en hotmail.com; r-help-es en r-project.org From: javier.ruben.marcuzzi en gmail.com Subject: RE: [R-es] Instrucciones uso rvest Date: Wed, 23 Dec 2015 10:27:01 -0300 Estimado Francisco Rodríguez Creo que del ejemplo de Gregorio Serrano tomé algo, no recuerdo todo y no alcanzo a buscarlo y leerlo, sin embargo le envío dos partes que puede copiar y pegar, posiblemente de estos pueda tomar algo, no respondo su pregunta pero espero que sirva para que usted pruebe con las modificaciones necesarias y llegar a su objetivo. library(rvest)url <- "https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm" s <- html_session(url)f0 <- html_form(s)f1 <- set_values(f0[[2]], priceDate.year=2014, priceDate.month=12, priceDate.day=15)test <- submit_form(s, f1)b <- test reviews <- b %>% html_nodes(".data1") %>% html_text()reviews reviews <- b %>% html_nodes(".data1") %>% html_table()reviews library(rvest) Pagina.R <- html(x = "http://www.verema.com/vinos/portada") text <- Pagina.R %>% # html_nodes(xpath='//*[@id="producto_tipo_producto_id"]')%>% html_nodes(xpath='//*[@id="producto_tipo_producto_id"]/option')%>% html_text() text values <- Pagina.R %>% # html_nodes(xpath='//*[@id="producto_tipo_producto_id"]')%>% html_nodes(xpath='//*[@id="producto_tipo_producto_id"]/option')%>% # html_attr("option value") html_attr("value") values Res <- data.frame(text = text, values = values, stringsAsFactors = FALSE)Res Si hay un combobox, lista desplegable, etc., me encontré con problemas que no supe resolver, en algunos casos traía el resultado, en otros el php, o el php no se ejecutaba en el servidor para realizar la consulta, algo fallaba, por como venían los resultados supongo que estaba escrito con Dreamweaver (algo medio obsoleto pero tiene la información). Le envié un correo sobre eso al autor de rvest, me respondió pero no me dijo nada sobre el problema, si pudo solucionarlo, si escribí mal mi código, desconozco, en unos días tendré que ejecutar nuevamente esos archivos y resolver ese problema. Javier Marcuzzi De: Francisco Rodríguez Enviado: miércoles, 23 de diciembre de 2015 8:33 Para: r-help-es en r-project.org Asunto: [R-es] Instrucciones uso rvest Hola buenos días: Os remito una duda (en un documento word para su mejor expresión) sobre el uso de la libreria rvest. Mi problema es que como no soy informatico me pierdo un poco, he visto los ejemplos que hay colgados y los he seguido, pero el tema es que quiero acceder a los datos del INE, que en ocasiones estan un poco escondidos con menu de selecciones y no se como hacerlo con rvest para llegar hasta la solucion final. Lo anterior si lo he hecho (y lo sigo haciendo) con Rselenium gracias a que use un ejemplo de Gregorio Serrano, pero quiero pasar esos primeros codigos a rvest y por eso es por lo que solicito vuestra ayuda Remito fichero adjunto para aclarar un ejemplo de los que uso Un saludo y muchas gracias [[alternative HTML version deleted]]
Creo que es mucho mas sencillo que te descargues el fichero completo con toda la serie y luego selecciones los datos que te interesa en R. Por ejemplo puedes descargar toda la serie en formato pc-Axis e importarlo con el paquete "pxR". Adjunto ejemplo: download.file('http://www.ine.es/jaxiT3/files/t/es/px/10280.px', destfile = '10280.px') datos <- read.px('10280.px',encoding='latin1') # bug sin "encoding" df <- as.data.frame(datos) names(df) my.df <- subset(df, Comunidades..Provincias.y.Ciudades.Autónomas =='Andalucía' & Número.importe == 'Número' & Entidad.que.concede.el.préstamo == 'Todas las entidades' & Periodo %in% c("2015M10","2015M09") ) my.df On 23/12/15 12:33, Francisco Rodríguez wrote:> Hola buenos días: > > Os remito una duda (en un documento word para su mejor expresión) > sobre el uso de la libreria rvest. > Mi problema es que como no soy informatico me pierdo un poco, he visto > los ejemplos que hay colgados y los he seguido, pero el tema es que > quiero acceder a los datos del INE, que en ocasiones estan un poco > escondidos con menu de selecciones y no se como hacerlo con rvest para > llegar hasta la solucion final. > > Lo anterior si lo he hecho (y lo sigo haciendo) con Rselenium gracias > a que use un ejemplo de Gregorio Serrano, pero quiero pasar esos > primeros codigos a rvest y por eso es por lo que solicito vuestra ayuda > > Remito fichero adjunto para aclarar un ejemplo de los que uso > > Un saludo y muchas gracias > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- +-------------------------------------------------------------- | Francisco J. Viciana Fernández | Coordinador del Registro de Población | Servicio de Estadísticas Demográficas y Sociales | Instituto de Estadística y Cartografía de Andalucía | Leonardo Da Vinci, nº 21. Isla de La Cartuja. | 41071 SEVILLA. | franciscoj.viciana en juntadeandalucia.es +-------------------------------------------------------------- [[alternative HTML version deleted]]
Hola buenos días: Perdonar por no contestar antes, pero estaba aislado jeje. En principio la ideas que apuntas la conozco pero es aún más sencillo en este caso ya que dichos datos te los puedes descargar de un excel que publica el INE. La cuestión que planteo es para interactuar directamente con la web. He tomado esta página como ejemplo, porque si consigo ejecutar lo que pregunto aquí, entonces la idea la podría aplicar a otros casos, pero por lo que veo es más complicado de lo que parece Muchas gracias y si conocéis algo que se pueda hacer estupendo y si no, en caso de que encuentre algo al respecto de la cuestión que planteo, lo comparto Date: Mon, 28 Dec 2015 14:42:26 +0100 From: franciscoj.viciana en juntadeandalucia.es To: r-help-es en r-project.org Subject: Re: [R-es] Instrucciones uso rvest Creo que es mucho mas sencillo que te descargues el fichero completo con toda la serie y luego selecciones los datos que te interesa en R. Por ejemplo puedes descargar toda la serie en formato pc-Axis e importarlo con el paquete "pxR". Adjunto ejemplo: download.file('http://www.ine.es/jaxiT3/files/t/es/px/10280.px', destfile = '10280.px') datos <- read.px('10280.px',encoding='latin1') # bug sin "encoding" df <- as.data.frame(datos) names(df) my.df <- subset(df, Comunidades..Provincias.y.Ciudades.Aut?nomas =='Andaluc?a' & N?mero.importe == 'N?mero' & Entidad.que.concede.el.pr?stamo == 'Todas las entidades' & Periodo %in% c("2015M10","2015M09") ) my.df On 23/12/15 12:33, Francisco Rodr?guez wrote:> Hola buenos d?as: > > Os remito una duda (en un documento word para su mejor expresi?n) > sobre el uso de la libreria rvest. > Mi problema es que como no soy informatico me pierdo un poco, he visto > los ejemplos que hay colgados y los he seguido, pero el tema es que > quiero acceder a los datos del INE, que en ocasiones estan un poco > escondidos con menu de selecciones y no se como hacerlo con rvest para > llegar hasta la solucion final. > > Lo anterior si lo he hecho (y lo sigo haciendo) con Rselenium gracias > a que use un ejemplo de Gregorio Serrano, pero quiero pasar esos > primeros codigos a rvest y por eso es por lo que solicito vuestra ayuda > > Remito fichero adjunto para aclarar un ejemplo de los que uso > > Un saludo y muchas gracias > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es-- +-------------------------------------------------------------- | Francisco J. Viciana Fern?ndez | Coordinador del Registro de Poblaci?n | Servicio de Estad?sticas Demogr?ficas y Sociales | Instituto de Estad?stica y Cartograf?a de Andaluc?a | Leonardo Da Vinci, n? 21. Isla de La Cartuja. | 41071 SEVILLA. | franciscoj.viciana en juntadeandalucia.es +-------------------------------------------------------------- [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Para finalizar lo que había planteado sobre esta duda.Basado en la guía que se me remitió en correos anteriores, construir el siguiente código library(Rwebdriver)library(XML) start_session(root = "http://localhost:4444/wd/hub/", browser = "firefox") post.url(url = "http://www.ine.es/jaxiT3/Tabla.htm?t=10280&L=0")Combo1 <- element_xpath_find(value = '//*[@id="cri70710"]/option[1]')Combo2 <- element_xpath_find(value = '//*[@id="cri70711"]/option[1]')Combo3 <- element_xpath_find(value = '//*[@id="cri70712"]/option[1]')Combo4 <- element_xpath_find(value = '//*[@id="caja_periodo"]/div/fieldset/div[3]/a[1]/img') element_click(Combo1)keys("Nacional")element_click(Combo2)keys("Euro")element_click(Combo3)keys("Todas las entidades")element_click(Combo4) BotonID <- element_xpath_find(value = '//*[@id="botonConsulSele"]')element_click(BotonID) Con esto hay sólo un pequeño detalle que no consigo, pero en todo caso consigo que se haga todo lo que quiero a un 95% No se explica y creo que con estas librerías no se puede y ahora no sé cómo, se puede hacer selecciones dentro de la opción keys (en todo caso si alguien aporta el cómo hacerlo, conseguiría que del 95% pasase a que esto haga el 100% de lo que pido, así pues lo que queda, aunque ya digo, no es determinante para mi proyecto es por ejemplo ver si en el Combo4 puedo seleccionar 2 y sólo 2 datos y no todos como lo que hago) Si os fijáis en Combo4, no selecciono los valores vía key, si no que lo que hago es pulsar otro botón diferente que me permite de una "tacada" seleccionar todos los valores y después hago simplemente un click (es el botoncito azul de la parte de periodos que cuando lo pulsas lo coge todo) Bueno, este método tiene ventajas sobre el relenium y demás a pesar de que creo que le falta un poquito: -Permite jugar con la versión actual de Firefox y no con la 3.1-El código se simplifica bastante-La selección de elementos y nominaciones es más directa Un saludo y gracias en todo caso por la ayuda e indicaciones, por mi parte dejo cerrada la pregunta From: fjroar en hotmail.com To: r-help-es en r-project.org Date: Wed, 23 Dec 2015 11:33:26 +0000 Subject: [R-es] Instrucciones uso rvest Hola buenos días: Os remito una duda (en un documento word para su mejor expresión) sobre el uso de la libreria rvest. Mi problema es que como no soy informatico me pierdo un poco, he visto los ejemplos que hay colgados y los he seguido, pero el tema es que quiero acceder a los datos del INE, que en ocasiones estan un poco escondidos con menu de selecciones y no se como hacerlo con rvest para llegar hasta la solucion final. Lo anterior si lo he hecho (y lo sigo haciendo) con Rselenium gracias a que use un ejemplo de Gregorio Serrano, pero quiero pasar esos primeros codigos a rvest y por eso es por lo que solicito vuestra ayuda Remito fichero adjunto para aclarar un ejemplo de los que uso Un saludo y muchas gracias _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]