137
cnológico Centro Nacional de Investigación y Desarrollo Tecnológico Subdirección Académica Cuernavaca, Morelos, México. Diciembre de 2013. Departamento de Ciencias Computacionales TESIS DE MAESTRÍA EN CIENCIAS CrawNet: un Crawler para Obtener Información de Recursos Multimedia de la Web Superficial y Oculta presentada por Ing. Eduardo Pedroza Landa como requisito para la obtención del grado de Maestro en Ciencias de la Computación Director de tesis Dra. Alicia Martínez Rebollar Codirector de tesis Dr. Hugo Estrada Esquivel

CENIDET · 2020. 7. 7. · cnológico Centro Nacional de Investigación y Desarrollo Tecnológico Subdirección Académica Cuernavaca, Morelos, México. Diciembre de 2013. Departamento

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • cnológico

    Centro Nacional de Investigación y Desarrollo Tecnológico

    Subdirección Académica

    Cuernavaca, Morelos, México. Diciembre de 2013.

    Departamento de Ciencias Computacionales

    TESIS DE MAESTRÍA EN CIENCIAS

    CrawNet: un Crawler para Obtener Información de Recursos

    Multimedia de la Web Superficial y Oculta

    presentada por

    Ing. Eduardo Pedroza Landa

    como requisito para la obtención del grado de Maestro en Ciencias de la Computación

    Director de tesis Dra. Alicia Martínez Rebollar

    Codirector de tesis

    Dr. Hugo Estrada Esquivel

  • Dedicatorias

    A mis padres Amada y Claudio, quienes con su apoyo he logrado continuar adelante

    día a día a lo largo de mi vida, por enseñarme la disciplina del trabajo y comprender

    las horas de trabajo que dedique a este proyecto dejando de lado aquel tiempo de

    convivencia con ellos. Les agradezco su apoyo en todos aquellos momentos difíciles

    que se me presentaron a lo largo de la carrera.

    A mi hermana Vanessa, por su compresión, apoyo y motivación para finalizar con

    éxito esta etapa de mi vida.

    A mi novia Mirel, por su tolerancia y apoyo incondicional durante el desarrollo de este

    proyecto, por comprenderme en aquellos momentos que eran difíciles y que a pesar

    de eso supo alentarme a seguir adelante, gracias por estar siempre a mi lado y ser

    parte de mi vida.

    A mis amigos Mauricio, Héctor, David y Gustavo, quienes han dedicando tiempo para

    apoyarme tanto personal como profesionalmente. Gracias por su sincera y leal

    amistad.

    A mis amigos Raúl, José Antonio, Frank, Benito, Ney y Luis quienes han estado

    conmigo desde hace ya mucho tiempo , por su compresión en aquellas reuniones

    que tenia que retirarme o que faltaba, gracias. A mis amigos del tec Gis, Michel, Ana,

    orquídea, Erick pozas, Sergio y Daniel los cuales estaban al tanto de mis avances

    en este proyecto, a quienes me alentaron a estudiar la maestría y que menciono con

    mucho respeto, Dr. Xavier Mathew, Christian colín, Erick Ramírez y Omar sarracino.

    A mis amigos y compañeros del CENIDET, que fueron un apoyo incondicional y

    siempre estuvieron presentes, brindándome su amistad y consejo, en especial a

    Wendy Sánchez, Israel Galán, Francisco Barrera, Salvador Escorcia, Jesús

    Rodríguez, Oscar Lozano, Elizabeth Cadenas ,Ilse Landa y Leticia Aponte.

    A mis maestros quienes me orientaron y aconsejaron en especial a mis asesores la

    Dra. Alicia Martínez y el Dr. Hugo estrada, quienes me brindaron su apoyo

    incondicional aportando conocimiento y guía durante toda la carrera.

    A todos ellos dedico este trabajo, fruto del esfuerzo en el que todos formaron parte y

    sin lo cual no habría podido finalizar.

    Gracias.

  • Agradecimientos

    A mi directora de tesis la Dra. Alicia Martínez Rebollar, quien me apoyo de manera incondicional durante todo el trayecto de la maestría, otorgándome las bases necesarias para la construcción del conocimiento a partir del trabajo, disciplina y esfuerzo constante, siendo estos los pilares de una formación académica y personal de éxito. A mi codirector de tesis el Dr. Hugo Estrada Esquivel, quien desde un principio me alentó a continuar con este proyecto de investigación proporcionándome consejo y asesoría para enriquecer mi conocimiento. A mis revisores: Dr. Javier Ortiz Hernández, Dr. Jorge Hermosillo Valadez y al M.C. José Luis Ramírez Alcántara por su valiosa contribución y tiempo durante este trabajo de investigación. A mis profesores que me proporcionaron los conocimientos necesarios para culminar mi carrera de forma exitosa. A mis compañeros de sistemas distribuidos que me proporcionaron su ayuda incondicional en todo momento, por su amistad que me brindaron durante toda la carrera. Al Consejo Nacional de Ciencia y Tecnología (CONACYT) por el apoyo económico proporcionado para la realización de este proyecto de tesis. Finalmente y no menos importante al Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) por la oportunidad y el apoyo otorgado para estudiar la maestría en Ciencias de la Computación.

  • Resumen

    Hoy en día, la cantidad de información que se encuentra en la web es enorme y sigue creciendo. La información es consultada diariamente por millones de usuarios en busca de diversos temas con el propósito de obtener resultados rápidos y exactos. Sin embargo, algunas búsquedas se realizan en temas especializados que no pueden encontrarse con una consulta sencilla. Los motores de búsqueda son utilizados para consultar y obtener información de la web. Estos nos permiten introducir palabras o frases clave para obtener resultados. La mayoría de los motores de búsqueda no trabajan en tiempo real, sus bases de datos ya contienen la información indexada. La indexación se realiza por medio de pequeños programas comúnmente llamados crawlers, estos programas recorren la web en busca de información y cuando la encuentran entonces la clasifican y la almacenan en las bases de datos. Los crawlers trabajan en lo que comúnmente se llama la web superficial, la cual, está integrada por páginas estáticas que fácilmente pueden ser encontradas e indexadas. Por otro lado, existen páginas que requieren mecanismos avanzados como el llenado de formularios para poder acceder a su información, estas páginas forman parte de la llamada web oculta. En este trabajo de investigación, el crawler denominado “CrawNet” es presentado. Este Crawler permite la búsqueda en la web superficial y principalmente en la web oculta. Dos algoritmos fueron desarrollados. El primero permite hacer búsquedas en la web superficial y recuperar enlaces con videos de futbol, información de películas, crónicas escritas de partidos de futbol (gamecast) e información general. El segundo algoritmo está enfocado a las búsquedas en la web oculta, permite la recuperación de información mediante el llenado de formularios de búsqueda avanzada. Tanto el algoritmo de la web oculta como el algoritmo de la web superficial fueron evaluados, lográndose resultados superiores al 90% en precisión sobre la búsqueda y recuperación en la web superficial. La evaluación del algoritmo de la web oculta se dividió en dos secciones: la primera, evaluó la “correcta selección del formulario web así como sus elementos html”. Los resultados en esta sección arrojaron un promedio de 100 % en exhaustividad y precisión cuando la identificación y apertura del enlace url que contenía el formulario de búsqueda avanzada era correcto. La segunda sección evaluó las respuestas obtenidas a partir de la consulta realizada por Crawnet, se obtuvo un promedio superior al 90% en exhaustividad mientras que en precisión un promedio del 70 %;

  • Abstract

    Today, the amount of information that it´s on the web is huge and is growing.

    Information is accessed everyday by millions of users looking for various topics with

    the purpose of setting exact and fast results. However, some searches are performed

    on specialized topics that cannot be found with a simple query.

    Search engines are used to query and to get web information. These allow us to

    introduce keywords or Keyphrases to obtain results. Most engine search do not work

    in real time, their database already contain the indexed information. Indexing is

    performed through little programs commonly called Crawlers; these programs run

    through the web searching for information and when they find it they classify and

    store it in databases.

    The Crawlers work in what is commonly called the surface web, which it is integrated

    of static pages that can easily be found and indexed; on the other hand, there are

    pages that require advanced mechanisms such as filling out forms to access

    information; these pages are part of the hidden web call.

    In this research, the crawler called “CrawNet” is presented. This crawler allows

    search in the surface web and mainly in the hidden web. Two algorithms were

    developed. The first allows search in the surface web and retrieve links to soccer

    videos, movie information, written chronicle of soccer (gamecast) and general

    information. The second algorithm is focused to search on the hidden web, to allow

    the retrieval of information by filling form advanced search.

    Both the algorithm of the hidden webs and the web surface algorithm were evaluated,

    achieving over 90% accuracy in search and retrieval results in the surface web. The

    evaluation algorithm of hidden web is divided into two sections: the first evaluated the

    "correct selection of web form and its html elements." The results in this section threw

    an average of 100% in completeness and accuracy when the identification and

    opening of the url link containing the advanced search form was correct. The second

    section threw the responses from the consultation by Crawnet, a higher average was

    obtained in 90% accuracy completeness while an average of 70%;

  • i

    CONTENIDO

    1. Introducción .......................................................................................................... 1

    1.1 Motivación ...................................................................................................... 2

    1.2 Planteamiento del problema ........................................................................... 3

    1.3 Objetivos ........................................................................................................ 4

    1.3.1 Objetivo general ....................................................................................... 4

    1.3.2 Objetivos específicos. .............................................................................. 4

    1.4 Esquema de la tesis ....................................................................................... 4

    2. Fundamento Teórico ............................................................................................. 6

    2.1 Web superficial. .............................................................................................. 7

    2.2 Web oculta. .................................................................................................... 7

    2.3 Web opaca ..................................................................................................... 9

    2.4 Web privada ................................................................................................... 9

    2.5 Web propietaria .............................................................................................. 9

    2.6 Web invisible ................................................................................................ 10

    2.7 Crawlers ....................................................................................................... 10

    2.7.1 Crawlers para la Web superficial. .......................................................... 10

    2.7.2 Crawlers para la Web oculta .................................................................. 11

    2.7.3 Extracción de la información. ................................................................. 11

    2.8 Expresiones regulares .................................................................................. 12

    3. Estado del arte .................................................................................................... 14

    3.1 Criterios de evaluación ................................................................................. 15

    3.2 Crawlers de investigación ............................................................................ 15

    3.2.1 Crawling the HiddenWeb HIWE (Raghavan y Garcia-Molina 2001). ..... 15

    3.2.2 Google´s Deep-Web Crawl (Madhavan et al. 2008). ............................. 18

    3.2.3 Arquitectura para Crawling dirigido de información contenida en la Web

    oculta (Álvarez Díaz 2007) .................................................................................. 20

    3.3 Algoritmos, métodos y técnicas propuestos de investigación. ..................... 24

    3.3.1 Downloading hidden Web content (Ntoulas, Zerfos, y Cho 2004) ......... 24

    3.3.2 Vide: A vision-based approach for deep web data extraction (Liu, Meng,

    y Meng 2010) ...................................................................................................... 25

  • ii

    3.3.3 Deep web content mining ...................................................................... 26

    3.3.4 Resumen de trabajos relacionados ....................................................... 27

    4. Metodología de solución CrawNet. ..................................................................... 30

    4.1 Herramientas utilizadas ................................................................................ 31

    4.1.1 Netbeans versión 7.2 ............................................................................. 31

    4.1.2 Jsoup .................................................................................................... 31

    4.1.3 HtmlUnit : ............................................................................................... 31

    4.1.4 Selenium : .............................................................................................. 32

    4.1.5 Mysql: .................................................................................................... 32

    4.2 Descripción general de la solución. .............................................................. 32

    4.3 Algoritmo de la Web superficial .................................................................... 34

    4.3.1 Paso 1: Búsqueda de enlaces URL sobre un tema solicitado por un

    usuario o sistema. ............................................................................................... 35

    4.3.2 Paso 2: Extracción de la información. .................................................... 36

    4.3.3 Paso 3. Procesamiento y clasificación de la información. ..................... 37

    4.4 Algoritmo de la web oculta ........................................................................... 37

    4.4.1 Paso 1. Búsqueda y selección del formulario Web. ............................... 38

    4.4.2 Paso 2. Extracción de las propiedades que definen los elementos HTML

    del formulario seleccionado. ............................................................................... 40

    4.4.3 Paso 3. Asignación y envío de datos al formulario. ............................... 42

    4.4.4 Paso 4. Procesamiento del contenido generado a partir de la consulta

    realizada. ............................................................................................................ 42

    5. Diseño e implementación de la herramienta CrawNet ........................................ 45

    5.1 Arquitectura CrawNet. .................................................................................. 46

    5.1.1 Módulo recuperación de páginas ........................................................... 46

    5.1.2 Módulo analizador y clasificador de páginas ......................................... 48

    5.1.3 Módulo analizador de formularios. ......................................................... 49

    5.1.4 Modulo Envió de datos al formulario: ..................................................... 50

    5.1.5 Módulo Analizador de respuesta: .......................................................... 50

    5.2 Interfaz de CrawNet ..................................................................................... 51

    5.2.1 Interfaz principal CrawNet ..................................................................... 52

    5.2.2 Áreas de la pantalla principal. ................................................................ 53

  • iii

    5.2.3 Implementación de la herramienta CrawNet. ......................................... 56

    5.2.4 Implementación en la web superficial. ................................................... 57

    5.2.5 Implementación en la web oculta. .......................................................... 61

    6. Pruebas y resultados .......................................................................................... 64

    6.1 Métricas de evaluación ................................................................................. 65

    6.1.1 Precisión ................................................................................................ 65

    6.1.2 Exhaustividad ........................................................................................ 66

    6.1.3 Medida f ................................................................................................. 66

    6.2 Métodos de evaluación ................................................................................ 66

    6.2.1 Evaluación de casos de estudio web superficial .................................... 66

    6.2.2 Evaluación de casos de estudio web oculta. ......................................... 68

    6.3 Casos de estudio de la web superficial ........................................................ 69

    6.3.1 Búsqueda general .................................................................................. 69

    6.3.2 Búsqueda de videos de futbol ............................................................... 70

    6.3.3 Búsqueda de Gamecast. ....................................................................... 72

    6.3.4 Búsqueda de información de películas. ................................................. 73

    6.4 Casos de estudio de la Web oculta .............................................................. 75

    6.4.1 Sección 1, “selección de formularios y elementos”. ............................... 75

    6.4.2 Sección 2, “evaluación de respuesta”. ................................................... 83

    7. Conclusiones y trabajos futuros. ......................................................................... 94

    7.1 Conclusiones ................................................................................................ 95

    7.2 Contribuciones ............................................................................................. 96

    7.3 Trabajos futuros ........................................................................................... 97

    Referencias ............................................................................................................... 98

    Anexo A. .................................................................................................................. 100

  • iv

    ÍNDICE DE FIGURAS

    Figura 1. Representación de la web, superficial y oculta. ................................... 8

    Figura 2. Componentes básicos de un Crawler (Vladislav 2002) ..................... 10

    Figura 3. Identificación de elementos y dominios (Raghavan Y Garcia-Molina

    2001) ........................................................................................................................ 16

    Figura 4. Estructura HIWE (Raghavan Y Garcia-Molina 2001). ........................ 18

    Figura 5. Plantilla de consulta informativa (Madhavan et al. 2008) ........................... 19

    Figura 6.Arquitectura del Crawler de Google. ..................................................... 20

    Figura 7. Navegación de lenguaje NSEQL a través de enlaces de páginas (Álvarez

    Díaz 2007) ................................................................................................................. 21

    Figura 8. Proceso de asignación de valores (Álvarez Díaz 2007) .................... 22

    Figura 9. Resultados después de utilizar el lenguaje NSEQL (Álvarez Díaz 2007)... 22

    Figura 10.Arquitectura del Crawler (Álvarez Díaz 2007) ................................... 23

    Figura 11. Algoritmo para selección de palabras clave (Ntoulas, Zerfos, Y Cho

    2004) ........................................................................................................................ 24

    Figura 12. Estructura visual de bloques (Liu, Meng, Y Meng 2010). ............... 26

    Figura 13.Metodología de solución CrawNet ...................................................... 34

    Figura 14.Algoritmo para la Web superficial. ...................................................... 35

    Figura 15.Palabras clave encontradas en enlace seleccionado de la búsqueda

    "videos de futbol". ................................................................................................... 36

    Figura 16. Algoritmo de la Web oculta. ................................................................ 38

    Figura 17. Etiqueta localizada. ................................................................ 39

    Figura 18.Formulario de búsqueda avanzada localizado. ................................. 41

    Figura 19.Comparación de parámetros contra valores de las propiedades de

    los elementos. ......................................................................................................... 41

    Figura 20. Valores de un textbox relacionado con el parámetro título. ........... 41

    Figura 21.Búsqueda y selección de código HTML cercano al parámetro

    buscado.................................................................................................................... 42

    Figura 22.resultado de la búsqueda Superman y actor Marlon Brando. .......... 43

    Figura 23.Busqueda de valores semillas sobre un enlace existente en la

    página respuesta. ................................................................................................... 44

    Figura 24.Proceso del módulo que recupera páginas. ....................................... 48

    Figura 25. Arquitectura general CrawNet. ........................................................... 51

    Figura 26.interfaz principal de la herramienta CrawNet. ................................... 52

    Figura 27.Opción búsqueda general seleccionado. ........................................... 53

    Figura 28.Opción búsqueda "videos de futbol" seleccionada. .......................... 54

    Figura 29.Opción búsqueda "gamecast" seleccionada. .................................... 54

    Figura 30.Opción búsqueda "películas " seleccionada. ..................................... 55

    Figura 31.Opción de "búsqueda avanzada de peliculas " seleccionada. ....... 55

    Figura 32.Interfaz enlaces recuperados. ............................................................. 56

    Figura 33.Implementación de la búsqueda "general" sobre el sitio

    www.cenidet.edu.mx. ............................................................................................. 57

  • v

    Figura 34.Resultado de la implementación de la búsqueda "general" ............. 57

    Figura 35.Implementación de la búsqueda "videos de futbol" sobre el sitio

    www.as.com. ........................................................................................................... 58

    Figura 36.Resultado de la implementación de la búsqueda "videos de futbol".

    .................................................................................................................................. 58

    Figura 37.Página recuperada de la implementación de la búsqueda "videos de

    futbol". ...................................................................................................................... 58

    Figura 38.Implementación de la búsqueda "Gamecast" sobre el sitio

    espndeportes.espn.go.com .................................................................................... 59

    Figura 39.Resultado de la implementación de la búsqueda "Gamecast" ........ 59

    Figura 40.Página recuperada de la implementación de la búsqueda

    "Gamecast" .............................................................................................................. 59

    Figura 41.Implementación de la búsqueda "películas" sobre el sitio

    www.elmulticine.com .............................................................................................. 60

    Figura 42.Resultado de la implementación de la búsqueda "películas" donde

    es mostrada una página que ha sido recuperada por medio de esta búsqueda

    .................................................................................................................................. 60

    Figura 43.Implementación de la "búsqueda avanzada de películas". .............. 61

    Figura 44.Proceso de implementación de la búsqueda avanzada ................... 62

    Figura 45. Enlaces recuperados, resultados de la consulta realizada ............. 62

    Figura 46.Página respuesta de película avanzada ............................................. 63

    Figura 47.Enlace de búsqueda avanzada encontrado. ...................................... 77

    Figura 48.Identificación de elementos relevantes en formulario web. ............. 78

    Figura 49. Parte de código html que contiene el formulario web con los

    atributos relevantes. ............................................................................................... 78

    Figura 50. Resultados de la herramienta DeepBot. ........................................... 82

  • vi

    ÍNDICE DE TABLAS

    Tabla 1.Tabla comparativa grupo 1. ..................................................................... 28

    Tabla 2.Tabla comparativa grupo 2. ..................................................................... 29

    Tabla 3. Patrones utilizados en el algoritmo de la web oculta. ......................... 35

    Tabla 4.Parámetros y valores semillas para realizar una búsqueda de una

    película cinematográfica. ....................................................................................... 38

    Tabla 5.patron para la búsqueda de enlaces y formularios de búsqueda

    avanzada. ................................................................................................................ 39

    Tabla 6.Patrón para identificar y seleccionar los parámetros buscados en el

    algoritmo de la Web oculta. ................................................................................... 40

    Tabla 7.Parámetros y valores semilla para realizar búsqueda de película

    cinematográfica. ...................................................................................................... 50

    Tabla 8.Parametros y valores semilla para la implementación de la búsqueda

    avanzada sobre la web oculta. .............................................................................. 61

    Tabla 9. Dominios web seleccionados para la búsqueda en la web superficial .

    .................................................................................................................................. 67

    Tabla 10.Resultados caso de estudio búsqueda general. ................................. 70

    Tabla 11.Enlaces URL seleccionados para las pruebas sobre la búsqueda

    videos de futbol. ...................................................................................................... 70

    Tabla 12.Elementos relevantes identificados de videos de futbol. ................... 71

    Tabla 13.Resultados finales de búsqueda de videos de futbol ......................... 71

    Tabla 14.Enlaces URL seleccionados para las pruebas sobre la búsqueda de

    Gamecast. ................................................................................................................ 72

    Tabla 15.Elementos relevantes identificados de gamecast............................... 72

    Tabla 16.Resultados finales de búsqueda de gamecast ................................... 73

    Tabla 17.Enlaces URL seleccionados para las pruebas sobre la búsqueda de

    películas. .................................................................................................................. 73

    Tabla 18.Elementos relevantes identificados de videos de futbol. ................... 74

    Tabla 19.Resultados finales de búsqueda de películas ..................................... 74

    Tabla 20.Enlaces seleccionados para sección 1 ................................................ 75

    Tabla 21.Análisis e identificación de parámetros en formulario Web del sitio

    www.filmsandtv.com. .............................................................................................. 79

    Tabla 22. Resultados de la selección de la correcta selección del formulario

    http://www.filmsandtv.com. .................................................................................... 79

    Tabla 23.Resultados de la selección de la correcta selección de los elementos

    que integran el formulario http://www.filmsandtv.com ....................................... 79

    Tabla 24.Resultados de la identificación y selección de elementos HTML. .... 81

    Tabla 25.Enlaces de prueba para sección 2 ....................................................... 83

    Tabla 26.Películas utilizadas para las pruebas de la web oculta. .................... 83

    Tabla 27.Datos obtenidos al realizar la consulta directamente sobre la página

    web http://www.filmsandtv.com/ ............................................................................ 85

    Tabla 28. Resultados para el sitio http://www.filmsandtv.com/........................ 85

  • vii

    Tabla 29.Datos obtenidos al realizar la consulta directamente sobre la página

    web http://www.fildanyfilm.com/ ............................................................................ 86

    Tabla 30. Resultados para el sitio http://www.fildanyfilm.com/ ........................ 86

    Tabla 31.Datos obtenidos al realizar la consulta directamente sobre la página

    web http://www.half.ebay.com. ............................................................................. 87

    Tabla 32.Resultados para el sitio http://www.half.ebay.com. .......................... 87

    Tabla 33.Datos obtenidos al realizar la consulta directamente sobre la página

    web http://www.bbfc.co.uk/ .................................................................................... 88

    Tabla 34.Resultados para el sitio http://www.bbfc.co.uk/. ................................ 88

    Tabla 35.Datos obtenidos al realizar la consulta directamente sobre la página

    web http://www.accionhd.com/ .............................................................................. 89

    Tabla 36.Resultados para el sitio http://www.accionhd.com/. .......................... 89

    Tabla 37.Datos obtenidos al realizar la consulta directamente sobre la página

    web http://www.swapadvd.com. ............................................................................ 90

    Tabla 38.Resultados para el sitio http://www.accionhd.com/. .......................... 90

    Tabla 39.Datos obtenidos al realizar la consulta directamente sobre la página

    web http://www.videomania.info/ .......................................................................... 91

    Tabla 40.Resultados para el sitio http://www.videomania.info/ ....................... 91

    Tabla 41.Datos obtenidos al realizar la consulta directamente sobre la página

    web http://www.starscafe.com ............................................................................... 92

    Tabla 42.Resultados para el sitio http://www.starscafe.com ............................ 92

  • Capítulo I. Introducción

    1

    Capítulo 1 1. Introducción

  • Capítulo I. Introducción

    2

    En la actualidad la World Wide Web a la que llamaremos simplemente Web, se ha convertido en el medio de información más utilizado. La información contenida es enorme y sigue creciendo diariamente. Para consultar la información contenida en la Web se tiene que hacer uso de programas llamados motores de búsqueda, los cuales recorren la Web en respuesta a una petición de un usuario, los buscadores ya contienen indexadas (almacenadas en su base de datos) páginas por medio de pequeños programas llamados Crawlers, por lo que, cuando un usuario realiza una petición, el motor de búsqueda consulta su propia base de datos (Pita Andreu 2009). La mayoría de los motores de búsqueda solo trabajan sobre la Web superficial, la cual contiene documentos estáticos y es la que comúnmente conoce el usuario promedio. Sin embargo existe una gran cantidad de información en la denominada Web oculta, la cual se estima que supera por mucho en tamaño a la Web superficial (Shohreh 2009),(Chang, He, y Zhang 2004).

    Hoy en día, es difícil el acceso a la gran cantidad de información de la Web oculta, ésto debido a que la Web oculta está constituida por bases de datos dinámicas, formularios, páginas con contenido Script o Flash, también aquellas que solicitan un login y password (Álvarez Díaz 2007). Este trabajo de investigación plantea el desarrollo de un Crawler que permite realizar búsquedas en la Web superficial y en la Web oculta en dominios específicos.

    1.1 Motivación Actualmente existe un enorme interés de usuarios especializados en búsquedas de información en medios audiovisuales, los cuales tienen criterios de búsqueda específicos. Existe una gran cantidad de información que no se encuentra en la Web superficial, es decir, no se encuentra fácilmente en aquellos sitios cuyo contenido es estático, debido a que existen páginas dinámicas, que requieren autentificación para mostrar su contenido, las cuales necesitan la ejecución de un programa o ejecución de scripts que solo se activan con la selección de un usuario. Las características mencionadas, entre otras, son parte de lo que se denomina Web oculta. Este trabajo presenta la creación de un Crawler el cual recupera información especializada y que, además permite el acceso a la Web oculta para obtener información que los usuarios especializados pueden utilizar. Además, como se ha mencionado al principio, los motores de búsqueda utilizan este tipo de programas. El desarrollo de este trabajo se debe principalmente a que se tiene contemplado

  • Capítulo I. Introducción

    3

    integrarlo a un buscador con el fin de recuperar toda aquella información que podrá ser consultada.

    1.2 Planteamiento del problema En la actualidad, la Web representa la fuente de información más utilizada tanto en el ámbito académico, científico como industrial. La cantidad de información contenida en la Web es impresionante, y comprende desde documentación formal y estructurada de muy diversos temas, hasta contenidos generados directamente por usuarios a través de medios sociales. De esta forma la cantidad de información almacenada en la Web crece día con día. Actualmente, los motores de búsqueda son el mecanismo más utilizado para consultar la información contenida en la Web. Estos motores contienen páginas indexadas (almacenadas en su base de datos) por medio de pequeños programas llamados Crawlers. De esta manera, cuando un usuario realiza una petición a un motor de búsqueda, éste consulta su base de datos en la cual se almacenan páginas indexadas a través de un determinado Crawler (Pita Andreu 2009). A pesar de que actualmente existen diversos motores de búsqueda, la mayoría de ellos sólo trabajan sobre la Web superficial, la cual es integrada por documentos estáticos accesibles a través de ligas de navegación y es la que comúnmente conoce el usuario promedio. Sin embargo existe una gran cantidad de información en la denominada Web oculta, la cual accesible a través de formularios de búsqueda y se estima que supera por mucho en tamaño a la Web superficial (Shohreh 2009), (Chang, He, y Zhang 2004). Hoy en día resulta complicado el acceso a la gran cantidad de información de la Web oculta, ya que se encuentra en constante cambio debido a que está constituida principalmente por bases de datos dinámicas, formularios, en los cuales los usuarios deben proporcionar datos válidos para poder obtener una respuesta satisfactoria, páginas con contenido script o flash, además de considerar todas las páginas que requieren la autenticación del usuario (Álvarez Díaz 2007). Esto ocasiona que un usuario buscando una gran cantidad de información en la Web oculta deba dedicar una cantidad de tiempo considerable para ingresar datos en un formulario para cada información buscada. Por esta razón, el objetivo de este trabajo de investigación es el desarrollo de un Crawler de la Web oculta que permita realizar búsquedas en dominios específicos, facilitando con esto la recuperación masiva de información. El Crawler permitirá contar con un esquema de búsqueda de información similar al de un buscador de la Web superficial. Por otro lado el desarrollo de este Crawler tiene primordial importancia ya que será integrado dentro del proyecto “Un novedoso enfoque de indexado semántico como

  • Capítulo I. Introducción

    4

    parte de una arquitectura para búsquedas de información en la Web” propuesto en el Centro Nacional de Investigación y Desarrollo Tecnológico CENIDET (García y Estrada Esquivel 2011), el cual tiene como objetivo desarrollar una herramienta semántica capaz de proporcionar resultados más eficientes basados en el significado de la consulta.

    1.3 Objetivos

    1.3.1 Objetivo general Desarrollo de un Crawler de la Web superficial y la Web oculta, para la recuperación de recursos digitales y su aplicación para videos de deportes e información de películas

    1.3.2 Objetivos específicos.

    Diseñar un algoritmo para recuperar enlaces cuyo contenido haga referencia

    a videos de deportes.

    Desarrollar mecanismos para la descarga y almacenamiento de la información

    encontrada.

    Desarrollar una base de datos que permita almacenar la información obtenida

    por el Crawler.

    Diseñar un algoritmo para acceder a los datos de la Web oculta, considerando

    las posibilidades actuales de creación de formularios dinámicos, logueo, etc.

    Implementar un algoritmo de búsqueda que permita la recuperación de

    información a partir de sitios reales que tengan su información en el enfoque

    de Web oculta.

    Integrar el Crawler desarrollado al proyecto “un novedoso enfoque de

    indexado semántico como parte de una arquitectura para búsquedas de

    información en la web” de (García y Estrada Esquivel 2011), el Crawler sera

    una parte esencial de la arquitectura de este proyecto.

    1.4 Esquema de la tesis La organización de la tesis es la siguiente: Capítulo 2: Fundamento teórico. Este capítulo define los conceptos relevantes asociados con la temática abordada en la tesis.

  • Capítulo I. Introducción

    5

    Capítulo 3: Estado del arte: este capítulo proporciona una revisión de los trabajos relacionados con el proyecto de tesis. Los trabajos se dividen en dos grupos, en cada grupo se describe la extracción de información y la asignación de valores, finalmente se muestra una tabla comparativa. Capítulo 4: Metodología de solución: este capítulo proporciona la descripción de la metodología de solución utilizada para acceder a la Web superficial y oculta. Capítulo 5: Diseño e implementación de la herramienta CrawNet: este capítulo presenta la implementación de los algoritmos de la Web oculta y la Web superficial desarrollados en este trabajo de investigación, también se presenta el diseño del prototipo de la herramienta CrawNet para la implementación de los algoritmos. Capítulo 6: Pruebas y resultados: este capítulo describe las métricas utilizadas para realizar las pruebas sobre los resultados obtenidos por parte de los algoritmos. Capítulo 7: Conclusiones y trabajos futuros: este capítulo resume las conclusiones identificadas en el desarrollo de este proyecto de investigación e identifica las contribuciones de nuestra investigación.

  • Capítulo II. Fundamento Teórico

    6

    Capítulo2. Fundamento Teórico

  • Capítulo II. Fundamento Teórico

    7

    Este capítulo presenta los principales conceptos utilizados en este proyecto de investigación. Algunos de ellos, en la Web superficial y la Web oculta. Los conceptos utilizados en este proyecto de investigación son: Web superficial, Web oculta, Crawler, medios audiovisuales, sistemas de recuperación de información y expresiones regulares

    2.1 Web superficial. La Web superficial es aquella que está y puede ser indexada por los robots de los motores de búsqueda tradicionales, algunas características que distinguen a este tipo de Web son las siguientes:

    • La información no está contenida en bases de datos. • El acceso a ella es libre. • No se requiere un proceso de registro para acceder al contenido. • En general están formadas por páginas Web estáticas.

    2.2 Web oculta. La Web oculta, también llamada Web profunda o Web invisible, es aquella que contiene información que no es posible tener acceso a ella utilizando un motor de búsqueda tradicional, el cual, generalmente realiza la búsqueda en la Web superficial. La gran diferencia entre la Web oculta y la Web superficial reside en la búsqueda que se realiza sobre las bases de datos, cuyo resultado solo puede ser descubierto por una consulta directa. Las principales características que distinguen a la Web oculta son:

    La Web oculta hace referencia al contenido detrás de los formularios HTML,

    por lo tanto, para poder acceder a la información se debe proporcionar datos

    validos dentro de los campos de dichos formularios para poder realizar una

    consulta específica (Cafarella et al. 2008).

    La existencia de sitios Web que requieren la autentificación del usuario por

    medio de un login y un password para poder acceder a la información

    requerida.

    La existencia de sitios dinámicos que utilizan flash o lenguaje script es otro

    ejemplo de contenido existente en la Web oculta y que no pueden ser

    consultados por motores de búsqueda convencionales (Álvarez Díaz 2007).

  • Capítulo II. Fundamento Teórico

    8

    Las características mencionadas son solo algunas que constituyen el concepto de Web oculta, la existencia de este tipo de contenido tiene como consecuencia que los motores de búsqueda actuales no puedan indexar de manera eficaz todo el contenido que se encuentra en la Web. La Web oculta contiene información considerada de gran valor, sin embargo, debido al constante crecimiento diario de información no se ha podido calcular el tamaño real respecto a la Web en general. Existen autores los cuales proponen y muestran datos de estimaciones estadísticas acerca del tamaño actual de dicha información (Castells 2003), incluso se han realizado comparaciones y representaciones graficas entre Web superficial y la oculta, una representación muy usual es representar estos dos conceptos como un iceberg, donde la punta es la Web superficial mientras que el resto es la Web oculta (Figura 1).

    Figura 1. Representación de la web, superficial y oculta. La Figura 1 representa la diferencia entre la Web superficial y la oculta, la cantidad de información contenida en la Web oculta es enorme en comparación con la Web superficial. En la figura mostrada se puede distinguir que la mayoría de la información contenida en la Web oculta es dinámica, mientras que la superficial representa información estática e indexable.

  • Capítulo II. Fundamento Teórico

    9

    Chris Sherman propone una clasificación de la Web oculta basándose en su contenido, dicha clasificación contempla 4 tipos de contenido, la Web opaca, la Web privada, la Web propietaria y la verdadera Web invisible (Sherman y Price 2001) .Los tipos de contenido clasificados por Chris Sherman se mencionan a continuación.

    2.3 Web opaca La Web opaca es aquella cuyo contenido se refiere a las páginas que no han sido incluidas en los índices de los motores de búsqueda. Los motores de búsqueda actuales no tienen la capacidad de indexar todas las páginas existentes. También puede no existir indexación de páginas debido a que los buscadores tienen un límite para presentar los resultados, y por último, están aquellas las cuales no son consultadas y no son relevantes para los buscadores. La frecuencia con la que los Crawlers indexan las páginas también es uno de los problemas, debido a que la Web es un fluido dinámico, las páginas se agregan diariamente o se mueven a otros sitios. También están todas aquellas páginas las cuales sus autores no envían a los motores de búsqueda sus URLs, para que quede más claro, los autores envían a los motores la URL de su página para que pueda ser indexada, de otra manera, el Crawler tendrá que descubrir esa URL por sí mismo, y se presenta un problema más grande cuando los sitios no enlazan a esa página buscada directamente, estas páginas son llamadas “desconectadas”.

    2.4 Web privada La Web privada es aquella cuyo contenido involucra las siguientes características:

    1. Páginas protegidas por un nombre de usuario y sus respectivas contraseñas.

    2. Páginas que utilizan mecanismos o robots.txt que evitan que el Crawler lleve a

    cabo el método de indexación.

    3. Utilizan meta-etiquetas “no indexables” para evitar que el Crawler no lea más

    allá del encabezado e indexe el cuerpo.

    2.5 Web propietaria El contenido de la Web propietaria es aquella en la que se necesita un registro previo para poder ingresar a la información, además para el ingreso a este tipo de páginas es necesario cumplir ciertas condiciones especiales que se han establecido previamente. A pesar de que muchas veces el registro es gratuito el Crawler no es capaz de acceder a dicha información.

  • Capítulo II. Fundamento Teórico

    10

    2.6 Web invisible El contenido de la Web invisible involucra páginas con formatos PDF, PostScript, Flash, Shockwave, programas ejecutables y archivos comprimidos. Una de las razones por las cuales no puede ser indexado es que muchas páginas tienen poco o no tienen un contexto textual. También en esta clasificación se encuentran las páginas generadas dinámicamente a partir de los datos que el usuario introduce así como la información almacenada en bases de datos relacionales. Es un hecho que dentro de esta clasificación existen Crawlers los cuales evitan la búsqueda en la web oculta, debido a que muchas veces pueden caer en trampas, trampas que hacen caer en un dominio el cual contiene millones de enlaces y el Crawler puede quedar ciclado.

    2.7 Crawlers Los Crawlers son pequeños programas utilizados por los motores de búsqueda para la localización, el proceso de análisis y el almacenamiento de la información. Los Crawlers se clasifican en dos tipos: Crawlers de la Web superficial y Crawlers de la Web oculta. A continuación se describe cada una de estas categorías.

    2.7.1 Crawlers para la Web superficial. Son programas capaces de procesar y analizar la Web. Se dedican a recorrer la Web superficial, localizando páginas estáticas para posteriormente extraer texto HTML y entonces indexarlas. La información se localiza en una base de datos. La Figura 2 muestra los componentes básicos necesarios de un Crawler.

    Figura 2. Componentes básicos de un Crawler (Vladislav 2002)

  • Capítulo II. Fundamento Teórico

    11

    Es necesario para la Web superficial el uso de sistemas Crawler de alta calidad para descargar millones de páginas Web. Sin embargo, a pesar que existen motores con un tiempo de respuesta considerado de calidad como Google o AltaVista éstos solo cubren una pequeña parte de la Web superficial (Vladislav 2002). Los Crawlers realizan una copia de las páginas Web visitadas, con el propósito de que estas páginas posteriormente sean utilizadas por motores de búsqueda, con ésto se garantiza mayor rapidez en el resultado de la búsqueda. El propósito de un Crawler es automatizar el proceso que llevan a cabo los motores de búsqueda (Pita Andreu 2009) .

    2.7.2 Crawlers para la Web oculta Los Crawler para la Web oculta están enfocados en indexar contenido de páginas dinámicas, lo cual no pueden realizar los motores de búsqueda tradicionales ya que la mayoría trabajan sobre páginas estáticas. Se han realizado diversos estudios sobre la Web oculta y el acceso a su contenido por medio de un Crawler, entre estos estudios se encuentra la clasificación de sistemas Crawlings en base a la efectividad para acceder a la Web oculta (Prieto et al. 2012) también existen trabajos que sugieren métodos y algoritmos para la construcción de un Crawler eficiente (Barbosa y Freire 2007), (Ntoulas, Zerfos, y Cho 2004). Los principales problemas que se quieren resolver son:

    El manejo de la información debido al tamaño de la Web oculta ya que es muy

    grande y cambiante.

    El acceso a la base de datos solo se permite cuando se proporcionan los

    datos correctos al formulario y se ejecuta la búsqueda.

    Se han propuesto Crawlers para la Web oculta, uno de ellos es el de la universidad de Stanford llamado Hidden Web Exposer (HIWE), utilizado para búsquedas específicas (Raghavan y Garcia-Molina 2001)(Raghavan y Garcia-Molina 2001) , también se desarrolló un Crawler del motor de búsqueda Google (Madhavan et al. 2008).

    2.7.3 Extracción de la información. La extracción de la información a través de un Crawler depende del contenido Web que se esté buscando. Chris Sherman y Garyprice (Sherman y Price 2001) plantean diferentes formas por medio de las cuales un Crawler puede extraer información:

  • Capítulo II. Fundamento Teórico

    12

    • Primer caso: Extracción sobre una página simple HTML. La simplicidad de los documentos HTML hace posible a los motores de búsqueda el

    almacenamiento de este tipo de documentos, indexando cada palabra en cada

    página para posteriormente almacenarla en una gran base de datos que

    puede ser buscada bajo una solicitud.

    • Segundo caso: La extracción de la información se lleva a cabo sobre una página HTML la cual necesite autentificarse con un nombre de usuario y

    contraseña, en este escenario se tiene la posibilidad de indexar la página y

    almacenarla, sin embargo la información que está oculta detrás del formulario

    no será tratada, simplemente se indexará y almacenará la información

    presentada sin ingresar el nombre de usuario y contraseña. Existe la

    posibilidad que en la misma página se encuentren enlaces los cuales el

    Crawler puede indexar, almacenar y que de cierta manera esos enlaces lleven

    a la información contenida detrás del formulario.

    • Tercer caso: La extracción de la información sobre páginas con contenido

    dinámico, un ejemplo de este contenido es aquella que tienen programas

    scripts, los cuales hasta que no sean ejecutados no se puede conocer su

    contenido, de hecho existen scripts que al ejecutarse generan miles de

    enlaces, lo cual puede mermar el funcionamiento del Crawler, y por esta

    razón, el desarrollo de algunos Crawlers no se enfoca a este tipo de páginas.

    • Cuarto caso: La extracción de información de páginas en tiempo real tendría

    como objetivo almacenar datos históricos, ya que por obvias razones el

    contenido no será el mismo, este tipo de páginas ocupa mucho espacio en los

    motores de búsqueda y los datos no tendrán valor al siguiente día.

    • Quinto caso: Extracción de información de un escenario donde existen

    páginas que tienen contenido multimedia y no contienen un índice ni algún

    texto por el cual la información puede ser almacenada.

    Actualmente se está trabajando en desarrollar Crawlers más inteligentes que puedan llenar formularios y recuperar esa información. Se trabaja en diferentes métodos, uno de ellos es adivinar lo que tiene que ir en el formulario y así entrar a la información requerida, también se proponen estructuras, algoritmos y métodos para dicha tarea (Shohreh 2009), (Barbosa y Freire 2007) (Álvarez Díaz 2007) , (Raghavan y Garcia-Molina 2001).

    2.8 Expresiones regulares Una expresión regular, a menudo llamada también patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. Las expresiones

  • Capítulo II. Fundamento Teórico

    13

    regulares son un método por medio del cual se pueden realizar búsquedas dentro de cadenas de caracteres. Sin importar si la búsqueda requerida es de dos caracteres en una cadena de 10, ó si es necesario encontrar todas las apariciones de un patrón definido de caracteres en un archivo de millones de caracteres, las expresiones regulares proporcionan una solución para el problema («Expresión regular» 2013). En este trabajo de investigación se utilizan expresiones regulares para realizar las búsquedas que se le solicitan al sistema, las expresiones regulares se utilizan como patrones en el lenguaje de programación java haciendo uso de la clase Pattern, los patrones establecidos están divididos de acuerdo al tipo de búsqueda que se desea realizar. Los patrones se aplican principalmente sobre los enlaces URL para poder identificar ciertos dominios, también se utilizan ampliamente en el Algoritmo de la Web oculta, ya que con un conjunto de patrones se identifica el dominio buscado, en esta etapa del proyecto de investigación se presentan los patrones utilizados para identificar el dominio de películas cinematográficas.

  • Capítulo III. Estado del arte

    14

    Capítulo 3 3. Estado del arte

  • Capítulo III. Estado del arte

    15

    En este capítulo se presentan trabajos de investigación que tienen como propósito acceder, extraer y clasificar páginas contenidas en la denominada Web oculta. Se estudian seis trabajos relacionados con el desarrollo de técnicas, métodos y algoritmos para acceder a esta información en la Web. Los trabajos han sido agrupados de acuerdo a lo descrito a continuación: El primer grupo denominado “Crawlers de investigación” está integrado por tres trabajos de investigación que han desarrollado sistemas Crawlers. El segundo grupo denominado “algoritmos, métodos y técnicas propuestos de investigación” incluye tres trabajos que proponen nuevas formas de interaccionar con la Web oculta, se analizan diferentes técnicas, métodos y algoritmos los cuales permiten acceder, extraer y almacenar páginas Web.

    3.1 Criterios de evaluación Descripción general: Se realiza una descripción sobre los principales puntos de interés del trabajo presentado. Asignación de valores: Se describe cómo se realiza la asignación de valores con el fin de tener acceso a los dominios o páginas que se encuentran en la Web oculta. Extracción de la información: Se describe la manera de extraer la información del trabajo de investigación después de haber obtenido el contenido de una página Web, se mencionan los pasos que se siguen y las técnicas, métodos o algoritmos utilizados para este propósito. Arquitectura: Este criterio de evaluación sólo se presenta en el primer grupo. Se representa gráficamente la arquitectura utilizada de cada uno de los trabajos analizados.

    3.2 Crawlers de investigación Los trabajos de investigación en esta sección han desarrollado sistemas Crawlers que ya han sido implementados sobre la Web, además proponen nuevas formas para lograr acceder a la Web oculta. A continuación se describen cada uno de ellos.

    3.2.1 Crawling the HiddenWeb HIWE (Raghavan y Garcia-Molina 2001). 3.2.1.1 Descripción general Este trabajo propone un Crawler enfocado a la búsqueda sobre la Web oculta llamado HIWE (por sus siglas en inglés Hidden Web Exposer), desarrollado en la

  • Capítulo III. Estado del arte

    16

    Universidad de Stanford, está dirigido a un dominio específico (industria de los semiconductores), presenta nuevas técnicas para la extracción del contenido de la Web oculta así como un análisis de resultados realizados. 3.2.1.2 Asignación de valores HIWE utiliza los formularios que se encuentran en las páginas HTML identificando los elementos de cada uno de ellos tales como: listas de selección (checklist), cajas de texto (text boxes), áreas de texto (Text áreas), cajas de selección (checkboxes) o botones de radio (radio buttons). Los elementos se describen semánticamente por las etiquetas, un ejemplo de ello es una etiqueta llamada “modelo de automóvil”, dentro de la etiqueta se encuentra la lista de modelos disponibles, los modelos disponibles son conceptualizados como el dominio. Cada elemento se describe por una etiqueta y también está asociado a un dominio. La relación entre el elemento y dominio se expresa como (elemento, dominio), también se utilizan tablas llamadas LVS (por sus siglas en inglés Label Value Set) que determinan el grado de similitud que existe entre una etiqueta y otra, la estructura de la tabla es (L, V), donde L es la etiqueta y V es el conjunto del grado o valor de la etiqueta (se refiere al significado). El proyecto HIWE se divide en tres partes principales:

    Análisis del formulario: En la Figura 3 se muestra un formulario Web que

    contiene etiquetas y cuatro Combobox, HIWE identifica las etiquetas del

    formulario, construye una representación interna de dicho formulario, además de

    las etiquetas se debe identificar el dominio asociado a esas etiquetas.

    Figura 3. Identificación de elementos y dominios (Raghavan Y Garcia-Molina

    2001)

    Label(E1) = Make

    Domain(E1) = {Acura, Lexus…}

    Label(E5) = Your ZIP

    Domain(E5) = {s | s is a text

    string}

  • Capítulo III. Estado del arte

    17

    Asignación y envío de valores: Se asigna y envía los grados de valor semántico

    más cercano entre los dominios a la tabla LVS. Dentro de este proceso se

    comparan en la tabla las etiquetas y los grados que tienen asociados en el

    dominio.

    Análisis de la respuesta: Verifica si los campos enviados son válidos o no

    coinciden. Si los datos no coinciden se regresa al paso anterior de asignación y

    envió de valores.

    3.2.1.3 Extracción de la información. Para extraer la información se ocupa una técnica llamada LITE (por sus siglas en inglés Layout Based Information Extration Technique), esta técnica utiliza la extracción semántica, descarta todo lo que no sea texto: imágenes, estilos de fuente y estilos de hoja. Además, ayuda a seleccionar el candidato más alto para asociar una etiqueta con el elemento. 3.2.1.4 Arquitectura HIWE La estructura del Crawler HIWE mostrada en la Figura 4 está constituida por los módulos básicos funcionales: parser, crawl Manager, form analyzer, form processor, response analyzer y LVS manager, además contiene una estructura interna que permite el almacenamiento de datos, los datos están en las tablas: URL list y Label Value Set (LVS) table. Los módulos que integran el Crawler son esenciales ya que controlan los procesos para decidir que enlaces visitar, descargar y almacenar. Además, gestionan la conexión para la recuperación y conversión de los enlaces URL. Las URL recuperadas son almacenadas en URL List.

  • Capítulo III. Estado del arte

    18

    Figura 4. Estructura HIWE (Raghavan Y Garcia-Molina 2001).

    3.2.2 Google´s Deep-Web Crawl (Madhavan et al. 2008). 3.2.2.1 Descripción general El trabajo realizado por Google presenta algunos algoritmos y métodos para acceder a la Web oculta. El objetivo de este trabajo es indexar la mayor cantidad posible de páginas a partir de millones de formularios HTML, teniendo en cuenta que se necesitan herramientas automáticas, altamente escalables y muy eficientes. 3.2.2.2 Asignación de valores El Crawler de Google recorre la Web realizando búsquedas con el objetivo de identificar formularios Web, cuando se obtiene éxito en la búsqueda se asignan los datos correspondientes al formulario Web para poder realizar consultas. Cabe mencionar que este trabajo ignora aquellos formularios que contienen información personal y aquellas áreas de texto donde su función es permitir comentarios de los usuarios. Google trabaja con algoritmos que logran identificar los elementos HTML existentes en los formularios Web tales como: cajas de texto y menús de selección de formularios, estos algoritmos predicen, en el caso de las cajas de texto los valores apropiados. Entre los algoritmos utilizados se encuentra ISIT (Incremental Search for Informative Query Templates). Este algoritmo utiliza el método GetCandidateInputs para seleccionar las entradas de los valores que son consideradas de los menús de selección y de las cajas de texto. Una vez que se han seleccionado las entradas para

  • Capítulo III. Estado del arte

    19

    las plantillas se utiliza el método CheckInformative el cual examina cada una de las plantillas candidatas, si se resuelve que las plantillas son buenas candidatas para utilizarse entonces se construye un subconjunto de entradas obligatorias que deberá llenar en el formulario. 3.2.2.3 Extracción de la información. Los formularios de consulta que utiliza Google son los que emplean el método get, ya que con el método get las direcciones URL obtenidas son únicas, mientras que por el método post los resultados obtenidos son indistinguibles y por lo tanto no directamente indexables. Google utiliza plantillas de información para evaluar diferentes conjuntos de valores generados para las entradas en los formularios. El contenido de estas plantillas es una representación compacta de un conjunto de consultas. En la Figura 5 se muestra una plantilla de información de resultados.

    Figura 5. Plantilla de consulta informativa (Madhavan et al. 2008) 3.2.2.4 Arquitectura Google La investigación de Google está enfocada a recuperar páginas utilizando como base principal las plantillas de consulta y algoritmos que generan palabras clave para construirlas. En la Figura 6 se representan los módulos que intervienen para lograr acceder e indexar los enlaces que se encuentran en la Web oculta por parte de Google, la arquitectura presentada es una interpretación grafica desarrollada a partir de un análisis del trabajo de investigación de Google.

  • Capítulo III. Estado del arte

    20

    Figura 6.Arquitectura del Crawler de Google.

    3.2.3 Arquitectura para Crawling dirigido de información contenida en la Web oculta (Álvarez Díaz 2007) 3.2.3.1 Descripción general El trabajo se desarolla en la universidad de Coruña y propone mejoras y nuevos métodos para un Crawler dirigido (especializado solo en ciertas áreas o dominios), se enfoca tanto en la Web oculta del lado del cliente así como en la Web oculta por parte del servidor. Para el desarrollo, pruebas e implementación se crea un prototipo llamado DeepBot dirigido a la Web oculta. Este Crawler se implementa sobre un software dedicado al Crawling denominado WebBot, incluido en un software comercial llamado Denodo Aracne. Denodo Aracne permite automatizar el recorrido de la Web, incluyendo aquella porción que utiliza mecanismos de dinamismo del lado del cliente. Cabe mencionar que para realizar pruebas de los algoritmos y técnicas presentadas se hacen sobre tres dominios los cuales son: libros, música y películas. 3.2.3.2 Asignación de valores Para la asignación de valores se utiliza un lenguaje para la navegación llamado NSEQL (por sus siglas en ingles Navigation SEQuence Language) el cual emplea un navegador Web automatizado. La ventaja de usar este navegador es que simula los

  • Capítulo III. Estado del arte

    21

    movimientos al navegar de un usuario de la Web. El lenguaje NSEQL permite asignar valores al formulario. Para trabajar sobre los formularios se utilizan algoritmos heurísticos que miden las distancias entre los elementos y las etiquetas, de esta manera se asocian semánticamente los campos existentes. Se han creado esquemas que contienen los atributos que representan los elementos del dominio, además de esto se tienen las relaciones existentes entre ellos, esto es parecido a una ontología que se tiene del dominio. En las figuras 7, 8 y 9 se muestran la asignación de valores por medio del lenguaje NSEQL.

    Figura 7. Navegación de lenguaje NSEQL a través de enlaces de páginas (Álvarez Díaz 2007)

  • Capítulo III. Estado del arte

    22

    Figura 8. Proceso de asignación de valores (Álvarez Díaz 2007)

    Figura 9. Resultados después de utilizar el lenguaje NSEQL (Álvarez Díaz 2007)

  • Capítulo III. Estado del arte

    23

    3.2.3.3 Extracción de la información Para la extracción de información se utiliza el lenguaje NSEQL, cuando se logra obtener una página como resultado de una búsqueda en un formulario, se genera un programa extractor para obtener la información del resto de las páginas que han sido resultado de esa consulta, se utiliza también un sistema que utiliza técnicas para generar una especificación en un lenguaje que permite definir reglas de extracción de datos sobre documentos de texto semiestructurado, llamado DEXTL (Data EXTraction Language). 3.2.3.4 Arquitectura La arquitectura propuesta por Álvarez Díaz está dividida en tres módulos, el módulo de Crawling, módulo de indexación y un módulo de búsqueda (Figura 10). Los módulos utilizados cuentan con los componente básicos de un Crawler, tal como; una lista de direcciones URL llamadas semillas, las cuales son necesarias para comenzar a realizar la búsqueda. Durante la lectura de las semillas se identifican los formularios HTML y se realiza el almacenamiento de ellas tanto de la Web superficial como de la Web oculta, al mismo tiempo que se almacenan los enlaces se realiza una clasificación y agrupación.

    Figura 10.Arquitectura del Crawler (Álvarez Díaz 2007)

  • Capítulo III. Estado del arte

    24

    3.3 Algoritmos, métodos y técnicas propuestos de investigación.

    3.3.1 Downloading hidden Web content (Ntoulas, Zerfos, y Cho 2004) 3.3.1.1 Descripción general La propuesta de esta investigación permite construir un Crawler, el cual descubre y descarga páginas de la Web oculta basándose en los puntos de entrada de las interfaces que las contienen. El enfoque del trabajo actual es proporcionar información significativa que se envía a una interfaz de consulta, por lo tanto, debe poder generar automáticamente consultas para descubrir y descargar páginas de la Web oculta. 3.3.1.2 Asignación de valores La formalización realizada en este trabajo pretende lograr el objetivo de encontrar el subconjunto de consultas adecuadas para cubrir el máximo número de páginas Web con un costo mínimo. Para seleccionar los términos que son utilizados en la consulta se utiliza el algoritmo presentado en la Figura 11.

    Figura 11. Algoritmo para selección de palabras clave (Ntoulas, Zerfos, Y Cho 2004)

    Donde tk es la frecuencia con la que se repite una sola palabra. Pnew son los nuevos documentos encontrados por el Crawler y Cost son los recursos utilizados para la recuperación de esas páginas, por último se envía la frecuencias más alta, con esto se ha seleccionado la palabra que con más frecuencia se repite con base a este algoritmo.

  • Capítulo III. Estado del arte

    25

    Para la selección de las palabras clave se evalúan los siguientes algoritmos:

    Aleatorio: Se seleccionan palabras claves al azar y se realiza la consulta.

    Genérico de frecuencia: Se obtienen las palabras clave que con más

    frecuencia se repiten y entonces se envía la que más se repitió.

    Adaptable. De acuerdo a la página que se ha obtenido como resultado, se

    analiza cuál palabra clave es más parecida a los documentos devueltos y se

    envía la palabra clave que es adecuada.

    3.3.1.3 Selección del algoritmo de consulta La investigación tiene como objetivo minimizar el costo que implica realizar una consulta, el siguiente enunciado es un ejemplo de lo que se pretende: “Si dos consultas devuelven el mismo número de nuevos documentos, se selecciona la que tiene menos costo en realizar la consulta y si las dos consultas involucran el mismo costo, entonces se selecciona aquella que devolvió más documentos”. El algoritmo adaptable es el que genera mejores resultados en todos los casos, ya que puede descubrir y descargar más documentos almacenados en la Web oculta.

    3.3.2 Vide: A vision-based approach for deep web data extraction (Liu, Meng, y Meng 2010) 3.3.2.1 Descripción general VIDE (Vision-based Data Extractor) es un trabajo de investigación que propone trabajar con un lenguaje de programación independiente del que se este escrito (no solo sobre HTML), su enfoque es sobre la información visual que presentan las páginas de la Web oculta, este concepto toma tanto imágenes como texto, y consiste en dividir la páginas en regiones visuales. VIDE se compone de dos elementos principales “extractor de registro de datos basados en visión” (VIDRE) y extracción de ítem de datos basado en la visión (VIDIE). 3.3.2.2 Asignación de valores Para la asignación de valores este trabajo toma en cuenta la cercanía y la relación que se tiene un bloque uno de otro, esto se toma de acuerdo a si su semántica es similar entre ellos.

  • Capítulo III. Estado del arte

    26

    3.3.2.3 Extracción de la información Para poder transformar y extraer información visual de una página que se encuentra en la Web oculta es necesario utilizar un árbol visual de bloques, para ello, se utiliza un algoritmo llamado VIPS. Este algoritmo tiene tres importantes propiedades:

    1. El bloque a contiene el bloque b si a es un antecesor de b.

    2. a y b no se superponen si ellos no satisfacen la propiedad uno.

    3. Los nodos con el mismo parentesco son organizados en el árbol de acuerdo a

    los nodos correspondientes que aparecen en la página.

    La representación de los bloques se desarrolla mediante un árbol visual de bloques, la Figura 12 un ejemplo de ello.

    Figura 12. Estructura visual de bloques (Liu, Meng, Y Meng 2010).

    3.3.3 Deep web content mining 3.3.3.1 Descripción general El trabajo propone el uso del formato XML. Utiliza técnicas de minería de datos para extraer y agrupar la información recuperada. El uso de medidas jaccard es uno de las principales propuestas que se presentan, con estas medidas se calcula la similitud entre atributos de las interfaces de consulta.

  • Capítulo III. Estado del arte

    27

    3.3.3.2 Extracción de la información El sistema que extrae información recibe las páginas con el formato XML como entradas, una vez que se tienen las páginas es posible acceder a las etiquetas HTML dentro de los documentos XML DOM API. Se utilizan medidas Jaccard, este tipo de medida es capaz de reconocer correlaciones positivas y negativas entre los atributos. Los atributos localizados se colocan en arreglos, los cuales son comparados columna por columna, si dos pares de atributos están almacenados en la misma celda y coinciden con el esquema entonces se almacena un número 1 dentro de una celda de relación y si es lo contrario se almacena un 0. La agrupación de los datos se realiza de acuerdo a la similitud del contenido de una página a otra, para ello, se utiliza un algoritmo que es capaz de medir la similitud entre las páginas, cuando el sistema reconoce que existe la similitud entre las paginas el sistema realiza una combinación de las páginas y coloca las URL en un solo grupo. 3.3.3.3 Asignación de valores Este trabajo propone extraer la información de las interfaces de consulta y después aplicar las medidas de correlación entre los atributos. Una vez que se analiza la información se usa el algoritmo de correlación que coincide con la minería de los atributos extraídos en el dominio especial y esos atributos se envían.

    3.3.4 Resumen de trabajos relacionados Los trabajos relacionados con este proyecto de investigación se resumen en dos tablas, la Tabla 1 resume el primer grupo mientras que la Tabla 2 resume los trabajos del segundo grupo. A continuación se presenta los diferentes parámetros utilizados para realizar la comparación de estos enfoques, estos parámetros son explicados a continuación: Tecnología: Este parámetro describe la tecnología sobre la cual trabaja cada uno de los proyectos de investigación, es decir si trabaja con HTML, RDF, XML etc. Tipo de búsqueda: este parámetro describe si el trabajo de investigación está dirigido a un dominio en general, específico o ambos. Arquitectura: Este parámetro solo es utilizado en el primer grupo de trabajos de investigación y confirma o niega si el trabajo presenta una arquitectura del Crawler.

  • Capítulo III. Estado del arte

    28

    Extracción de información: Este parámetro describe los algoritmos, métodos o técnicas que utilizan los trabajos de investigación para lograr extraer información de las páginas analizadas. Asignación de valores: Este parámetro describe los algoritmos, métodos o técnicas que utilizan los trabajos de investigación para asignar datos al formulario Web que es procesado.

    Tabla 1.Tabla comparativa grupo 1.

    Nombre del

    trabajo Tecnología Tipo de

    búsqueda Arquitec-

    tura Extracción de

    información Asignación de

    valores

    Crawling the

    HiddenWeb

    HIWE

    Utiliza el

    formato

    HTML, más

    específicam

    ente, los

    formularios

    de consulta.

    En un

    dominio

    especifico SI

    Utiliza una

    técnica llamada

    LITE (Layout

    Based

    Information

    Extration

    Technique), la

    técnica utiliza

    extracción

    semántica.

    Utiliza la relación entre

    los elementos que se

    encuentran en los

    formularios HTML,

    hace uso de tabla LVS

    para lograr medir y

    asignar esta relación

    Google´s

    Deep-Web

    Crawl

    Utiliza el

    formato

    HTML. Dominio

    global si

    Utiliza plantillas

    para enviar y

    verificar datos,

    recupera la

    información que

    es el resultado

    obtenido.

    Utiliza distintos

    algoritmos, entre estos,

    se encuentra el ISIT

    (Incremental Search for

    Informative Query

    Templates ). Utiliza

    GetCandidateInputs

    para seleccionar las

    entradas de los

    valores. Arquitectura

    para

    Crawling

    dirigido de

    información

    contenida en

    la web

    oculta

    Utiliza tanto

    formularios

    de consulta

    HTML

    como

    paginas

    estáticas

    normales.

    Dominio

    especifico

    y dominio

    global Si

    utiliza el lenguaje

    NESQL para

    acceder y extraer

    información.

    Utiliza un

    programa

    extractor llamado

    DEXTL.

    La asignación se lleva

    a cabo gracias a un

    activex y un lenguaje

    llamado NESQL, este

    lenguaje simula los

    movimientos del

    usuario dentro de un

    navegador

    Nuestra

    propuesta Formularios

    de consulta

    HTML Dominio en

    especifico Si

    Se utiliza Jsoup,

    r que permite la

    extracción de

    etiquetas HTML.

    Etiquetas y

    elementos se

    identifican

    mediante

    patrones..

    Para la asignación de

    valores se utilizan dos

    librerías: HTMLUNIT y

    Selenium, simulan los

    movimientos del

    usuario en un

    navegador incluyendo

    el click a un formulario

    Web.

  • Capítulo III. Estado del arte

    29

    Tabla 2.Tabla comparativa grupo 2.

    Nombre del

    trabajo

    Asignación de

    valores

    Extracción de

    información Tecnología

    Tipo de

    búsqueda

    Downloading

    Hidden Web

    Content

    Se selecciona y

    utiliza un algoritmo

    que se va adaptando

    a los resultados de

    las palabras claves.

    Se utilizan diferentes

    algoritmos para

    lograr la extracción

    de la información.

    Formularios

    HTML

    Dominio

    especifico

    Vide: A Vision-

    Based

    Approach for

    Deep Web Data

    Extraction

    Utiliza los

    componentes VIDRE

    y VIDIE

    Utiliza los

    componentes VIDRE

    y VIDIE

    Formularios

    de consulta

    HTML

    No

    especificado

    Deep Web

    Content Mining

    Se utilizan

    algoritmos de

    correlación para

    asignar los valores

    adecuados

    Las extrae con

    lenguaje DOM, y las

    ordena de acuerdo a

    uso de medida

    Jaccard

    Formato

    XML

    Dominio

    especifico

  • Capítulo IV. Metodología de solución CrawNet

    30

    Capítulo 4 4. Metodología de solución CrawNet.

  • Capítulo IV. Metodología de solución CrawNet

    31

    Este capítulo presenta una descripción detallada de la metodología denominada CrawNet, la cual se implementa mediante una herramienta que permite realizar búsquedas en la Web superficial y en la Web oculta. Este capítulo se encuentra organizado de la siguiente manera: la sección 4.1 describe brevemente las herramientas utilizadas para la aplicación de la metodología. La sección 4.2 describe de manera general la metodología CrawNet. La sección 4.3 describe los pasos utilizados en el algoritmo de la Web superficial para lograr extraer información. La sección 4.4 describe los pasos para seleccionar, extraer, asignar y enviar datos a los formularios por medio del algoritmo de la Web oculta.

    4.1 Herramientas utilizadas A continuación se describe brevemente las herramientas utilizadas para el desarrollo del Crawler.

    4.1.1 Netbeans versión 7.2 Netbeans es un entorno de desarrollo ID utilizado como una herramienta para que los programadores puedan escribir, compilar, depurar y ejecutar programas. Está escrito en java y es de código abierto. Netbeans se utiliza para desarrollar, probar e implementar mediante código el algoritmo desarrollado.

    4.1.2 Jsoup 1 Librería de código abierto para trabajar con HTML. Provee una conveniente API para extraer y manipular datos, utilizando los mejores métodos DOM, CSS y JQuery. Jsoup implementa la especificación WHATWG HTML5 y analiza HTML similar a DOM como los navegadores modernos. En este proyecto de investigación ésta librería es utilizada para identificar y extraer los valores de los elementos HTML; form, textbox, combobox y button.

    4.1.3 HtmlUnit 2: Es una librería o lenguaje de navegación escrito en java, simula un navegador Web sin interfaz, permite la manipulación a un alto nivel de sitios Web a partir de otro

    1 Jsoup: http 2 HtmlUnit: http://htmlunit.sourceforge.net/.

  • Capítulo IV. Metodología de solución CrawNet

    32

    código Java, incluye el llenado y envío de datos a formularios mediante la simulación de clics en hiperenlaces. Este lenguaje se utiliza en este proyecto para enviar la consulta al formulario de búsqueda avanzada seleccionado.

    4.1.4 Selenium 3: Es un conjunto de herramientas que permiten desarrollar scripts para pruebas de aplicaciones Web en diversos lenguajes como Java, Ruby, Python, Perl, .Net o PHP. Es un producto ofrecido como Open Source que está permanentemente siendo optimizado. Selenium actúa como un navegador Web, permite el llenado y envío de datos a los formularios Web. El uso de esta librería es similar a HtmlUnit, sin embargo como respuesta a la consulta recibe una cadena cuyo contenido es todo el código de la página Web.

    4.1.5 Mysql: Es un gestor de base de datos capaz de contener millones de registros con la configuración apropiada. CrawNet utiliza este gestor para almacenar toda la información encontrada durante las búsquedas mediante los algoritmos desarrollados.

    4.2 Descripción general de la solución. La metodología que se presenta a continuación busca solucionar la recuperación de información específica que se encuentra en la Web, en este trabajo de investigación se desarrollaron dos algoritmos con el propósito de aplicar ésta solución,, y los cuales, se implementan mediante una herramienta denominada CrawNet. Los algoritmos que integran la metodología buscan, identifican y recuperan información de acuerdo a lo solicitado por un usuario o sistema, para finalmente almacenar la información en una base de datos. La metodología CrawNet recibe como entrada una semilla URL que es utilizada como un dominio Web, el cual se debe recorrer para realizar la búsqueda. La metodología CrawNet se presenta en la Figura 13. Los algoritmos que la integran se describen brevemente a continuación.

    3 Selenium HQ Browser automation: http://seleniumhq.org/

  • Capítulo IV. Metodología de solución CrawNet

    33

    Algoritmo de la Web superficial: Éste algoritmo recupera información de este tipo de Web mediante búsquedas específicas, para lograrlo recibe la semilla URL la cual debe recorrer y recuperar todos los enlaces existentes en su contenido HTML, cada enlace recuperado es comparado y evaluado dependiendo del tipo de búsqueda seleccionada, las búsquedas que permite éste algoritmo son: “general”, “videos de futbol”, “Gamecast” e “información de películas”. Para la evaluación y selección de enlaces URL se declararon patrones de expresiones regulares, los cuales contienen palabras clave que se comparan directamente sobre el enlace URL, los enlaces que coinciden con los patrones se recuperan y almacenan en tablas correspondientes en una base de datos denominada bdaracnic. Algoritmo de la Web oculta: La Web oculta está integrada por páginas o base de datos dinámicas, por lo tanto este tipo de páginas solo proporcionan información cuando se interactúa con ellas. Ejemplo de estas páginas son las que solicitan un usuario y contraseña para poder acceder a la información. Éste algoritmo busca resolver el acceso a la información mediante el llenado de formularios de búsqueda avanzada, y para lograrlo recibe una semilla URL con el fin de identificar páginas Web que contienen formularios de búsqueda avanzada, también recibe valores semilla que son los datos con los que la película será buscada, por ejemplo, el parámetro título con el valor semilla “Batman”. Para identificar y recuperar páginas Web que contienen formularios, el algoritmo realiza una lectura de cada uno de los enlaces existentes en la semilla URL, cada enlace se compara con patrones de expresiones regulares que ayudan a identificar sitios que permiten búsquedas avanzadas. El enlace URL recuperado se procesa para buscar la etiqueta con el fin de localizar formularios Web. Si el formulario es localizado el algoritmo debe seleccionar aquel que pertenezca al dominio de películas cinematográficas, para ello, se buscan principalmente 3 parámetros en el contenido del formulario: “título”, “actor”, “director” y un parámetro opcional llamado “género”. Si se logra localizar los parámetros, entonces se buscan los elementos HTML textbox y combobox para que les sean asignados los valores semilla con los cuales se buscará la película, para ello se extrae los valores de sus atributos. Finalmente, se utiliza un módulo que permite evaluar la respuesta generada a partir de la consulta realizada.

  • Capítulo IV. Metodología de solución CrawNet

    34

    Figura 13.Metodología de solución CrawNet

    4.3 Algoritmo de la Web superficial La Web superficial es aquella que puede ser indexada por los robots de los motores de búsqueda tradicionales, algunas de las características que definen éste tipo de Web son: las páginas que la integran son de acceso libre, estáticas y no requieren un proceso de registro para acceder al contenido. El algoritmo de la Web superficial desarrollado en este trabajo de investigación, permite la recuperación de información y de enlaces URL basado en cuatro tipos de búsquedas: “general “, “videos de futbol”, “Gamecast” e “información de películas”. La Figura 14 muestra los pasos del algoritmo de la Web superficial, el cual, para poder alcanzar su objetivo necesita una semilla URL que es utilizada como un dominio Web donde se realiza la búsqueda, cabe mencionar que el algoritmo permite la búsqueda dentro o fuera del dominio Web si así es requerido. La salida que se espera al finalizar el proceso del algoritmo es el almacenamiento de los enlaces URL analizados.

  • Capítulo IV. Metodología de solución CrawNet

    35

    Figura 14.Algoritmo para la Web superficial.

    4.3.1 Paso 1: Búsqueda de enlaces URL sobre un tema solicitado por un usuario o sistema. Este paso se encarga de buscar e identificar enlaces URL de 4 maneras: “general”, “videos de futbol”, “Gamecast” e “información de películas”. Como resultado de este paso se recuperan los enlaces URL candidatos que pueden contener la información solicitada. El proceso de búsqueda por el que pasa cada enlace utiliza filtros, los cuales están definidos por patrones de expresiones regulares, que a su vez están integrados por palabras clave relacionadas semánticamente al tipo de búsqueda seleccionada (general, videos de futbol, Gamecast, información de películas). Este paso se encarga de buscar coincidencias entre las palabras clave que integran los patrones de expresiones regulares y las cadenas de texto que conforman un enlace URL, cuando las palabras clave del patrón coinciden con alguna palabra que se encuentre dentro de un enlace URL entonces el enlace se selecciona para ser procesado en el siguiente paso. En la Tabla 3 se muestran las palabras clave utilizadas en cada patrón, mientras que en la Figura 15 se presenta un ejemplo, el cual demuestra la selección de un enlace URL mediante la búsqueda “videos de futbol”, éste enlace contiene dos palabras clave; “videos” y “futbol”, las cuales coinciden con el patrón de la búsqueda seleccionada.

    Tabla 3. Patrones utilizados en el algoritmo de la web oculta.

    Patrón Palabras clave

    General No aplica

    Videos de futbol Videos, video, soccer, futbol

    Gamecast Gamecast

    Información películas Movie, movies, película, películas

  • Capítulo IV. Metodología de solució