Que es un Crawler / Spider / araña ?

El objetivo de un una araña, robot, crawler o spider, como sea que lo conoscaz, es “explorar la web”. Basicamente es un programa que es capaz de leer contenido de la web en una forma metodica para recolectar informacion de algun tipo. Bueno pero tipicamente que es lo que los Crawlers recolectan?

Por lo general los crawlers recolectan :

Contenido de las Paginas: Los crawlers se utilizan con gran frecuencia para recolectar informacion de algunos otros sitios, ya sea por motivos estadisticos, para indexarse para busquedas (Como lo hace google) o por muchos otros motivos tales como extaer videos, fotos u otros multimedias.

Links: Los links son referencias a otros sitios o paginas en el mismo sitio. Antes se usaban los links como una medida de la importancia de un sitio determinado. Entre mas sitios tuvieran links al tuyo, mas importante parecia ser.

Sobre el ejemplo

En este ejemplo aprenderemos como explorar una pagina, buscaremos un texto determinado y adicionalmente exploraremos la pagina en busca de referencias a otros sitios. Sientanse libres de modificar el codigo, cualquier correccion o mejora, no duden en enviarme un correo. Finalmente, las librerias que usaremos y el codigo en general esta hecho para correr sobre la version 3.x de python.

Sobre las librerias


var request = require('request');
var cheerio = require('cheerio');

Request es un cliente de http, lo que necesitamos para poder navegar inicialmente al sitio y pagina que queremos explorar, es muy facil de implementar y altamente configurable, lo que nos permite trabajar en un llamado corto, pero extendernos si lo ocuparamos.

Cheerio es una implementacion de jquery, para correr del lado del servidor. La belleza de usar esta libreria radica en lo facil que puedes encontrar los datos que buscas. Utilizando los mismos metodos que con jquery puedes localizar un objeto por la clase de css, su nombre, etc.

Conexion al WebSite


var linkPagina = "http://www.slothslab.com";
console.log("Abriendo pagina " + pageToVisit);
request(pageToVisit, function(error, response, body) {
   if(error) {
     console.log("Error: " + error);
   }
   // Check status code (200 is HTTP OK)
   console.log("Status code: " + response.statusCode);
   if(response.statusCode === 200) {
     // Parse the document body
     var $ = cheerio.load(body);
     console.log("Page title:  " + $('title').text());
   }
});

Examinando los html tags


Recomendaciones

.