Resultados 1 al 3 de 3

Técnicas de Data Mining automatizado: Extracción de enlaces de una página web

  1. #1 Técnicas de Data Mining automatizado: Extracción de enlaces de una página web 
    HH Administrator Avatar de LUK
    Fecha de ingreso
    Oct 2001
    Ubicación
    SpaÑa
    Mensajes
    5.284
    Descargas
    223
    Uploads
    250
    La minería de datos Web es una técnica crucial. Los buscadores viven de ella, y para nuestra desgracia, también la usan los spammers para incorporar contenidos a sus listas de distribución. Muy esquemáticamente, minar datos Web equivale a automatizar procesos que buscan datos en páginas y generan inteligencia posterior, extrayendo información de los contenidos minados e incorporando criterios de almacenamiento a una base de datos. Por ejemplo, buscar páginas que contengan la palabra clave "Linux" y generar una base de datos donde aparece la URL de la página que contiene el término, el número de veces que la contiene (densidad de keyword) y si aparece o no el término buscado en la URL es un minado de datos elemental con inteligencia.

    En síntesis, una araña o buscador Web es un conjunto de programas que recorren páginas y van incorporando a su índice información para que luego podamos buscarlos por criterios introduciendo en el buscador un conjunto de términos que queremos localizar. Huelga decir que las arañas modernas recaban mucha más información que la que hemos puesto de ejemplo, y generan bases de datos donde los criterios son múltiples y de toda índole, constituyéndose en algunos casos como motores tendentes a la inteligencia artificial. Ejemplos de arañas moderna pueden ser Googlebot, o Yahoo! Slurp, que son los motores principales que asisten los procesos de minería de los buscadores Google y Yahoo! respectivamente.

    Para ilustrar estos procesos de minería automatizado, vamos a recurrir ejemplos muy sencillos en Perl. El motivo de escoger Perl es por la presencia de módulos ya elaborados especializados en recuperación de datos Web, y de hecho, muchos buscadores se apoyan en software programado en este lenguaje. No os preocupéis, que no vamos a programar una araña, tan sólo veremos funcionalidades básicas que cualquier motor de búsqueda incorpora para ejemplificar las técnicas de minería automatizada de datos.


    Lo más elemental

    Vamos a recuperar el código fuente de una página. Para ello empleamos el siguiente código que salvaremos como script1.pl, y donde nos apoyaremos en el módulo LWP::Simple, una versión simplificada de libwww-perl.

    Código:
    use LWP::Simple;
     
    	getprint("http://www.perl.org");
     
    	die "Ejecucion finalizada\n";
    Ejecutamos:
    Código:
    perl script1.pl
    La salida de este script no es otra que el código fuente HTML puro y duro de http://www.perl.org


    Grabar una página HTML

    Otro ejemplo para ilustrar los mecanismos de recuperación es grabar una página. Para ello, nuevamente, nos apoyamos en LWP::Simple, pero esta vez en la función getstore();

    Código:
    use LWP::Simple;
     
    	getstore("http://www.perl.org", "paginaguardada.html");
     
    	die "Ejecucion finalizada\n";
    La salida de este comando es un fichero llamado paginaguardada.html, en el que se ha volcado el código fuente que se recuperaría mediante getprint(); en un fichero HTML. Eso sí, sólo se vuelca la página, no los enlaces que requiera, como por ejemplo, hojas de estilo. Transporte de código a fichero, puro y duro.


    Complicando un poco más las cosas

    Todo esto se puede complicar todo lo que queramos. El último ejemplo nos va a permitir sacar a fichero la colección de enlaces http:// presentes en una página determinada. Para ello vamos imaginar que alguien quiere coger los enlaces de las guías de seguridad de la NSA que tengo publicados en http://www.sahw.com/wp/archivos/2007/12/11/guias-de-configuracion-de-seguridad-de-la-nsa/ para poder publicarlos en su blog. Una posible manera es editar el código fuente, copiar en un editor, filtrar y salvar. Mediante Perl es más sencillo y lo haremos empleando otro módulo típico en minería automatizada, HTML::LinkExtor, especializado en la extracción de enlaces de documentos HTML. Generamos el fichero script2.pl con el siguiente código:

    Código:
    use HTML::LinkExtor;
    use LWP::Simple;
     
    my $pagina = get(shift) || 
     
    "<html><body>Not found</body></html>"; 
     
    my $recuperador = new HTML::LinkExtor; 
     
    $recuperador->parse($pagina);
     
    my @enlaces = $recuperador->links; 
     
    foreach (@enlaces) {    
     
    	while (my ($exclusiones) = splice(@$_, 2)) {
     
         		next unless $exclusiones =~ m/nsa.gov/; 
     
    	print "$exclusiones\n"; 
     
    	}
    }
    die
    Ejecutamos especificando la URL que queremos rastrear:
    Código:
    perl script2.pl "http://www.sahw.com/wp/archivos/2007/12/11/guias-de-configuracion-de-seguridad-de-la-nsa/"
    El resultado es una colección de enlaces directos a los documentos expuestos en el artículo, y que cumple con el criterio de exclusión que hemos declarado (mostrar sólo enlaces que contengan la secuencia nsa.gov)


    ¿Cuantos enlaces contienen todos los artículos de este blog?

    El proceso de extracción de enlaces se puede automatizar de múltiples maneras, así que preparé un script en bash que ejecutaba cíclicamente el script de extracción perl, de modo que se ejecutase sobre la totalidad de artículos el blog. He recorrido todos los enlaces, comenzando por http://www.sahw.com/wp/archivos/2004/01/06/ao-nuevo-weblog-nuevo/, primer enlace vivo del blog, y que publiqué el 6 de enero de enero de 2004 (me acabo de dar cuenta que hace 12 días este blog empezó su andadura en su cuarto año de vida, lo que son las cosas). La recolecta la detuve a comienzos de esta semana, con lo que no están todos, pero sí su mayoría.

    La minería la hice sin tratamiento de errores, con lo que los potenciales cortes de conexión o caídas del hospedaje pueden haber mermado la cantidad de enlaces recolectados. Sea como fuere, el resultado es este fichero, donde están recogidos todos los enlaces publicados en artículos y comentarios. Esta misma operación la hacen a diario Google, Yahoo y un sinfín más de agentes, entre los que lógicamente están los operados por spammers en busca de información. Obviamente, no se conforman con sólo enumerar los enlaces, sino que los guardan y los relacionan con los artículos de diversas maneras.

    Para el que no tenga ganas de contar, estos 267277 bytes contienen 5222 enlaces, lo que implica que en los 1107 días que llevamos abiertos, entre todos hemos enlazado una media de 4,71 enlaces por día. Algunos son URLs no válidas, ya que son inventadas por los comentaristas (http://CriticasobrelosAntispyware, http://Google, http://Informacinenespaol, http://Informacion, http://Julio y similares) si bien son en número casi despreciables. Están ordenados alfabéticamente

    Fuente:
    http://www.sahw.com/wp/archivos/2008...na-pagina-web/
    [][][] LUK [][][]
    hackhispano.com
    Citar  
     

  2. #2  
    Iniciado
    Fecha de ingreso
    Dec 2007
    Mensajes
    4
    Descargas
    0
    Uploads
    0
    Muy interesante

    Gracias
    Citar  
     

  3. #3  
    Avanzado
    Fecha de ingreso
    Jan 2004
    Ubicación
    Donde me dejan
    Mensajes
    433
    Descargas
    7
    Uploads
    0
    Ya sabemos un poquito mas de como funciona google, gracias por la información LUK

    Saludos
    El mejor maestro es uno mismo, aun que siempre va bien una ayudita
    Citar  
     

Temas similares

  1. Extraccion de datos de una BDD online
    Por Bigruf en el foro BASES DE DATOS
    Respuestas: 7
    Último mensaje: 09-03-2012, 16:01
  2. Respuestas: 0
    Último mensaje: 10-08-2009, 17:20
  3. Respuestas: 0
    Último mensaje: 22-01-2008, 09:53
  4. Respuestas: 1
    Último mensaje: 19-01-2008, 09:22
  5. Extracción de e-mails de cuentas IMAP
    Por asbutron en el foro OFF-TOPIC
    Respuestas: 0
    Último mensaje: 14-08-2007, 14:41

Marcadores

Marcadores