-
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ó