jueves, 31 de marzo de 2016

Extracción de datos con Import.io



Los desarrolladores a veces necesitamos información para realizar nuestras tareas, pero no la tenemos disponible en una fuente de datos tal y como nos gustaría.

Ejemplo: llevo tiempo queriendo hacer un "simulador" de la bolsa con el IBEX 35, para esto lo ideal sería tener una API en tiempo real (o casi) que nos fuera devolviendo los valores actuales de cada valor. Una API en JSON gratuita que nos permita esto no existe (o yo no la he encontrado).

Y para esto hay una herramienta de terceros llamada Import.io que nos puede ayudar.

Vamos a seguir con nuestro ejemplo. Hay muchas páginas que tienen los datos de los valores del IBEX-35, yo voy a elegir ésta: http://www.infobolsa.es/acciones/ibex35



Ahora nos vamos a la página web de Import.io, y en el campo donde está escrito "Enter an URL..." escribimos la URL de nuestra página y pulsamos el botón "Try it out". Después de unos segundos veremos la siguiente pantalla:



En ella vemos todos los datos correctamente extraídos de la página. Al final aparece el botón "Save", si lo pulsamos nos llevará a la página de alta en el servicio (es gratis).


Una vez dados de alta, veremos nuestro panel de control, que contiene nuestra URL. Arriba a nuestra derecha, podremos ver estos botones:


Si pulsamos en el botón "Run URLs". Nos llevará a la sección "History" donde veremos la cantidad de datos extraídos en esta ocasión:



En el enlace "Download" podremos escoger el formato de los datos a descargar:


¿Podemos pedir más? Si, una API. Pues para esto nos vamos a la Sección "Integrate" y allí tendremos nuestra URL para hacer peticiones a nuestros datos. Que nos serán devueltos en JSON:



Esta llamada devuelve los datos de la última extracción.

Para terminar lo ideal sería poder decirle a Import.io que nos refresque nuestras URLs automáticamente cada X minutos, pero esto aún no lo tienen implementado, aunque están en ello. 

De momento tendremos que hacerlo manualmente.

Aunque para mi proyecto de Simulador Bursátil no me vale, podemos sacarle mucho partido en otras situaciones.