en Dominios

Como obtener datos de una web con Google Docs + ImportXml (Parte-1)

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on Google+

En muchas ocasiones necesitamos obtener datos de alguna web para trabajar con ellos de forma cómoda. Un ejemplo podría ser que necesitemos optimizar el árbol de navegación de una web. Podríamos copiar a mano todos los datos, pero personalmente odio los trabajos automáticos, por lo que voy a explicar cómo hacerlo ayudándonos de Importxml.

Importxml es un tipo de fórmula que podemos encontrar en las hojas de cálculo de google docs y usar para obtener los datos de una web, hasta un límite de 50 formulas por documento de google docs.

 

1.- Como funciona la formula ImportXML

La fórmula se construye con las siguientes variables:

=importXML(“http://www.ejemplo.com“;”consulta en formato xpath“)

En una celda de nuestra hoja de cálculo de google docs tendriamos que poner un “=” seguido de la formula “importxml” y dentro de un paréntesis la URL y la consulta que queremos hacer.

La consulta se realiza en formato Xpath, os dejo un pequeño tutorial.

 

2.- Como obtener el contenido de una etiqueta especifica

Para este ejemplo he seleccionado la web del periódico público y la tarea es obtener todos los titulares de su portada.  Para ello accedo a la web y compruebo que todos sus titulares están marcado en su código html con la etiqueta h3. Así que para obtenerlos tendría que usar la siguiente formula:

=importxml(“http://www.publico.es/“;”//h3“)

La fórmula la escribo en la celda B3 y cada uno de los titulares se va rellenando hacía abajo, como pongo en esta captura:

 

importxml1

 

3.- Como obtener el enlace de cada uno de los titulares

Ok, tenemos los titulares, pero imaginad que ahora queremos saber los enlaces de cada titular. En tal caso emplearemos la siguiente formula:

=importxml(“http://www.publico.es/“;”//h3/a/@href“)

Añadimos la formula en la celda D3 y como en el caso anterior, todos los enlaces se van añadiendo en las siguientes celdas de forma vertical.

importxml2

Espero que este post os haya servido para ahorrar tiempo y obtener datos de forma automática.

Si tenéis alguna duda podéis preguntarme a través de los comentarios de la web.

 

 

Tweet about this on TwitterShare on LinkedInShare on FacebookShare on Google+

Comentarios

Comentario

  1. No puedo conseguir el XPath, y a partir de esto la fórmula siempre me tira un error, como puedo solucionar este inconveniente?

    Muchas gracias!

    • Al escribir la formula aparece un ejemplo ya hecho en el menú contextual. Prueba primero a rellenar los campos que aparecen como están en el ejemplo y usa directamente en la fórmula las URLs (no llames a otras celdas poniendo “C4” por ejemplo, pon directamente la URL).

    • Hay web en las que por algún motivo no se pude obtener el resultado.

      Yo he probado a copiar a través de una aplicación la web en otra URL y scrapear con importxml la copia de la URL original y en ese casi si funciona correctamente.

      Este paso de hacer una copia parece que sería suficiente pero yo lo vuelvo a pasar a google docs porque desde ahí ya puedo trabajar cómodamente con la información.