Crawling the Web
-
Upload
carlos-castillo -
Category
Technology
-
view
1.906 -
download
5
description
Transcript of Crawling the Web
1
Crawling
Curso: Recuperación de Información
-- ChaTo
2
The Problem
Search engine
Web
days/weeks/months
User
3
Tipos de crawler
4
Primeros Crawlers
RBSE Spider
– Web de 100.000 páginas
Crawler del Internet Archive
WebCrawler
– Muy exitoso en su época
5
Segunda Generación
Mercator, Sphinx
Lycos, Excite, Google
– Paralelos
Crawlers distribuídos
– Y descentralizados
6
Taxonomía Crawlers
7
Arquitectura
8
Arquitectura General
URLsTexto
Schedule Download
Web
9
Arquitectura Mercator
1 sacar url, 2 fetch, 3 RewindInputStream, 4: dupes, 5: parsear, 6: urls, 7: dupes url, 8: add
10
Arquitectura Alternativa
11
Scheduling
12
Scheduling en general
Varios objetivos simultáneos
– Priorizar mejores páginas
– Utilizar bien la red
– Mantener la colección fresca
– No sobrecargar servidores
13
Scheduling en dos fases
14
Scheduling de largo plazo
Cómo medir la importancia
– Driving Query (Agente Personal)
– Backlink count
– Pagerank
– URL● Dominio● Profundidad aparente de subdirectorio
15
Uso de red
16
Scheduling de corto plazo
Sean P(i) tamaños de página
B ancho de banda disponible
B(i) ancho de banda usado para sitios
– B(i) = P(i) / T*
T* tiempo óptimo
– T* = suma(P(i)) / B
17
Red – Escenario óptimo
18
El óptimo no es posible
Debemos evitar sobrecargar sitios
– Tiempo de espera w aprox. 30seg.
En general B(i) << B
– Alta variabilidad de B(i)
Alta tasa de fallas (20-30%)
Ocurren ineficiencias, el tiempo óptimo T* no es logrado
19
Red – Escenario realista
20
Red – Soluciones extremas
21
Crawling en la práctica
22
Web Oculta
O web profunda
– Bases de datos
– Un porcentaje alto de lo indexable
– Requieren interacción con formularios
Software
– Agente específico
– Base de datos con palabras del dominio
23
Problemas Servidores
Uso de ancho de banda
Control de acceso al servidor
– /robots.txt
Control de acceso a los recursos
– Meta name=robots
Se puede identificar un crawler
24
Problemas Crawler (1)Red
– Costo del ancho de banda
– Variable QoS
– Tiempos de espera, la latencia arruina la política de corto plazo
– Connect exitoso, write no exitoso (firewall)
DNS es cuello de botella
– Crash de DNS locales
– Fallas temporales DNS, en sitios chicos
– Records malos (bad.net misma IP que good.net, luego uno indexa y en los resultados muestra bad.net)
25
Problemas Crawler (2)Implementación de HTTP
– No cumplen encabezado accept
– Errores de rango cuando se pide un fragmento● e.g.: bytes 0-100k de un archivo de 20k
– Respuesta sin encabezados
– 'Found' cuando quiere decir 'Error'● Redirect a página de error
– Fechas● Particularmente al pedir if-modified-since
26
Problemas Crawler (3)Codificación HTML
– Elementos o atributos muy largos
– Uso de comillas simples y dobles mezcladas
– Tags vacíos, no vacíos, balanceados, no balanceados
URLs
– Sessionids
– Componentes repetidos
Contenido
– Muchos blogs y forums
– Mucho contenido duplicado
27
Scheduling de largo plazoresultados
28
Scheduling de largo plazoresultados
29
Scheduling de largo plazoresultados
30
Frescura de la copia localy cooperación del servidor
31
Normal operation: polling
WebServer
SearchEngine
request
response
headerscontent
32
Frescura y Edad
Frescura, F(página)
– 0 si la copia es DISTINTA del original
– 1 si la copia es IGUAL
Edad, E(página)
– 0 si la copia es igual al original
– x si han pasado x segundos desde que el original cambió
33
Frescura y Edad
Tiempo
Edad
SyncUpdate
Tiempo
Frescura
34
Interruptbased operation
WebServer
SearchEngine
request
response
notify
35
Cooperation issues
Objective: keep collection fresh
Problems
– Spamming: can't trust the web servers● Can't rely on quality assertions about pages.
– Privacy: can't trust the search engines● Can't give them full access to everything.
Technologies
– Compression, Differences of content, Fingerprints
– HTTP extensions, Web Services
36
Cooperation schemes (1 of 2)
Serve metadata/Notify changes
Serve differences/Send differences
Serve ifmodified/Send pages
Pipelining server/Send batches
WebSvr
Srch
Eng
WebSvr
Srch
Eng
WebSvr
Srch
Eng
WebSvr
Srch
Eng
37
Cooperation schemes (2 of 2)
Web service waitingfor crawlers:FILTERING INTERFACE
SearchEngine
WebServer
sync
Small program running at the server:REMOTE AGENT
SearchEngine
WebServer
sync
38
Costbenefit (polling)
Serve metadata
Network Processing Benefit
Normal
Normal
Normal
Normal
High
Serve differences
Serve onlyifmodified
Serve batchesof pages
Filtering interface
39
Costbenefit (interrupt)
Send metadata
Network Processing Benefit
Normal
Normal
Normal
Normal
High
Send differences
Send changed pages
Send batch update
Remoteagent
40
Will websites cooperate ?
Large websites
– Will cooperate is there is a benefit for them
– Web service for crawlers and e.g. e-commerce brokers
Websites that are customers of a search engine
– Websites that pay to be indexed more often and provide co-branded searches
General websites
– We can use to some extent the HTTP features such as pipelining or other future extensions
41
Conclusiones
Varios problemas relacionados con la naturaleza de la Web:
– Enorme
– Calidad variable
– Co-existencia de distintas implementaciones
Problemas aplicables en otros contextos
– Sincronizar una copia local
– Descubrir elementos importantes basándose en evidencia insuficiente