Etiqueta : datos

CasperJS, la aspiradora de datos que usamos en Electiona

post image

Por Nacho Escudero
Cloud Architect de OpenSistemas

Durante nuestro día a día nos encontraremos muchas veces webs con contenido importante, datos muy interesantes, que se actualizan con frecuencia y cuyos datos necesitamos para nuestro proyecto. Pero al ir a usar algún servicio que proporcione dicha web para acceder a los datos o descargarlos, nos daremos cuenta de que no existe ningún tipo de servicio de fácil acceso a la información o simplemente el servicio de publicación tiene un coste o complejidad que nos impide usarlo.

Si estás en esa necesidad: los datos son muy importantes para el proyecto y no puedo acceder a ellos de ninguna otra manera salvo “a mano” debes plantearte hacer uso de CasperJS.

CasperJS es un lenguaje de scripting basado en Javascript. Aporta un nivel de abstracción sobre PhantomJs. Por lo tanto, es un lenguaje usado para navegar por la web sin un entorno visual, realizar revisiones de aplicaciones online, monitorizar, capturar pantallas o automatizar acciones en cualquier página.

Ésta última característica es la que más nos interesa, ya que queremos extraer información. Mediante selectores CSS3 o XPath navegaremos hasta el contenido que nos interesa, podremos acceder a la información que contienen los elementos seleccionados y realizar acciones sobre ellos.

Las acciones más interesantes suelen ser: hacer click en un botón o enlace, rellenar formularios o revisar valores de tablas. La toma de decisiones en función de los resultados, el manejo de errores, los eventos, son otras de sus características.

La instalación es muy sencilla: si tienes npm instalado en tu sistema, mediante los siguientes comandos:

npm -g install phantomjs
npm -g install casperjs

Ya tendrías tu entorno preparado para trabajar.

Aquí se puede ver cómo usarlo para guardar en un array y mostrar todos los enlaces de una búsqueda:

var casper = require('casper').create();
var links;
function getLinks() {
// Rastreo de links
    var links = document.querySelectorAll('ul.navigation li a');
    return Array.prototype.map.call(links, function (e) {
        return e.getAttribute('href')
    });
}
// Abre casperjs 
casper.start('http://casperjs.org/');
casper.then(function () {
    links = this.evaluate(getLinks);
});
casper.run(function () {
    for(var i in links) {
        console.log(links[i]);
    }
    casper.done();
});

El resultado sería:

$ casperjs query-casperjs.js
http://docs.casperjs.org/en/latest/quickstart.html
http://docs.casperjs.org/en/latest/
https://github.com/casperjs/casperjs
https://groups.google.com/forum/#!forum/casperjs

En OpenSistemas se lleva usando CasperJS desde hace unos años. Nuestro producto Electiona hace uso de él para extraer los datos de escrutinio e histórico en las administraciones que no tienen un sistema de envío de información mediante otros servicios o protocolos. Mediante clave de acceso, se accede a la web de la administración durante la noche electoral y se descargan los ficheros desde enlaces cuando se publican. Todo ello de manera automatizada y parametrizable.

Tendencias 2017 en el mundo de los datos

post image

Por Juantomás García
Data Scientist de OpenSistemas

Empezamos el año 2017 y es una buena costumbre inaugurarlo haciendo algunas previsiones de que cuáles creemos que van a ser las tendencias en el mundo de los datos.

Se va a consolidar el uso deep learning.

Los avances en deep learning durante el año 2016 han sido espectaculares y esto se va a traducir en un mayor número de proyectos y la popularización de esta tecnologías entre los profesionales de sector.

Frameworks como TensorFlow[1] y Theanos[2] se han consolidado y cada vez hay más documentación, proyectos y casos de uso avanzados. Proyectos como Keras[3], un framework que simplifica y unifica el uso de ambos, son una prueba de como se está suavizando la curva de aprendizaje y haciendo más accesible el desarrollo de proyectos basados en deep learning.

Muchos de los avances, dicho sea de paso, espectaculares, del 2016 van a generar nuevos proyectos e ideas durante el 2017.

Vamos a necesitar más profesionales y multidisciplinares.

La demanda de profesionales va a seguir en aumento y cada vez los perfiles que son necesarios necesitan tener más conocimientos de otras áreas. Ya no vale el científico puro de datos que no sabe programar o no entiende como son las arquitecturas de datos.

La migración progresiva hacia el cloud.

Si en otros ámbitos de IT está clara la migración de servicios hacia el cloud, en el mundo de los datos tiene todo el sentido y es imparable. Los recursos deben estar dedicados a la explotación de la información y no al mantenimiento de arquitecturas cada vez más complejas. Al menos para un porcentaje muy alto de las operaciones. Siempre quedará una pequeña cuota de proyectos que no puedan ser migrados, ni explotados en el cloud por razones de confidencialidad de los datos, privacidad, etc. El reto será como compaginar y hacer funcionar lo mejor de ambos mundos.

Más acceso y más fácil a los datos y su manipulación.

Durante el 2017 se van a desarrollar más herramientas que van a simplificar el acceso, transformación y análisis de los datos. Estas herramientas van a posibilitar que mucha más personas sean capaces de acceder a la información.

Herramientas como los notebooks (jupyter, zeppelin, etc) están revolucionando en modo de plantear los proyectos, compartir información y extraer el máximo rendimiento de los recursos hardware.

Hacia un mundo de datos

post image

Por Álvaro García
Sales manager en OpenSistemas

Como en cualquier reto, siempre encontramos nuevos datos, nuevas medidas, nuevas distancias, nuevos perfiles, nuevos tiempos… Los datos están en todos los ámbitos de nuestra vida y cada vez de una forma más masiva. Por naturaleza humana queremos comprenderlos, entenderlos y utilizarlos a nuestro antojo.
(más…)

Inteligencia de negocio, el poder de los datos

Por Juanjo Portales
Account Manager de OpenSistemas

Términos como Advanced Analytics, Business Analytics o simplemente Analytics se han impuesto como los más necesarios a la hora de tomar decisiones dentro de las organizaciones.

Este poder de la analítica de los datos ha creado diferentes plataformas, herramientas y tecnologías para poder dar respuesta a la necesidad que se plantea en el mundo empresarial. (más…)

Deduplicación de datos, ¿ahorro o gasto?

Por Juan Manuel Conde
Developer OpenSistemas

La deduplicación permite reducir el tamaño de los datos almacenados mediante la eliminación de patrones redundantes. Pero no siempre es fácil usar de forma efectiva esta tecnología, de modo que la inversión se convierta en un ahorro y no en un gasto.

(más…)