Web Crawling
Coleta Automática na Web
Altigran Silva e Edleno Moura
Julho de 2002
Sumário
n
n
n
n
n
n
Algoritmo de coleta
Arquitetura
Estratégias de escalonamento
Aspectos práticos
Coleta incremental
Páginas duplicadas e Mirrors
Coleta de Páginas
n
Objetivo
n
n
Coleta automática e sistemática de
documentos da Web a serem indexados e
consultados pela máquina de busca
Coletores de Páginas
n
n
Crawlers = Spiders = Robots
Portugues: Navegadores Automáticos (??)
Coleta de Páginas
URLs Iniciais
Início
Web
Próxima URL
Coletar página
URLs a visitar
URLs visitadas
Extrair URLS
páginas
Exemplo
URL Inicial
Exemplo
Seguindo Links
Exemplo
Exemplo
Exemplo
Não serão
coletadas !!!
Seguindo Links
Arquitetura
Arquitetura Típica
Web
Requisições
HTTP
Servidor
de
Nomes (DNS)
Requisições DNS
Coletor
Coletor
Coletor
Páginas coletadas
URLs a coletar
URLs extraídas
Servidor
de
Armazenamento
Cache de Nomes
Base de Páginas
Escalonador
de
URLs
Iniciais
Novas Visitadas
Componentes
n
Coletores
n
n
n
n
Responsáveis pela requisição de páginas
aos servidores HTTP
Extraem os links das páginas recebidas e
enviam ao escalonador
Requisitam do escalonador uma ou mais
URLs a serem coletadas
Podem realizar um escalonamento local
(short term scheduling)
Componentes
n
Servidor de Armazenamento
n
n
n
Recebem as páginas ou outros objetos
coletados e armazenam em uma base
local.
Fazem a extração (parsing) de texto
Podem tratar vários formatos: Postscript,
PDF, Word, Powerpoint, etc.
Componentes
n
Servidor de Nomes
n
n
n
n
Atendem requisições DNS dos coletores
Mantêm um cache de identificadores DNS
(nomes) resolvidos
Crucial para evitar que cada coletor faça
requisições DNS remotas
Potencial ponto de gargalo
Componentes
n
Escalonador
n
n
n
Responsável por decidir qual a próxima URL a ser
coletada
Coordena as ações dos coletores
Deve garantir protocolo de exclusão
n
n
n
Retardo mínimo entre requisições a um mesmo servidor
HTTP.
Deve garantir que não haverão coletas repetidas
Potencial ponto de gargalo
Performance Típica
n
Mercator (Maio de 1999)
n
n
n
GoogleBot (Abril de 1998)
n
n
n
77.4 M requisições HTTP em 8 dias
112 docs/seg e 1.682 KB/seg
26 M requisições HTTP em 9 dias
33.5 docs/seg e 200 KB/seg
The Internet Archive crawler (Maio de 1997)
n
n
4 M HTML docs/dia
46.3 HTML docs/seg and 231 KB/seg
Mercator
n
Hardware
n
n
n
Digital Ultimate Workstation 533 MHz,
Alpha processors, 2 GB de RAM, 118 GB de
disco local
Conexão de 100 Mbit/sec FDDI
Software
n
n
Escrito Java
Procesador Java srcjava otimizado pela
Digital.
Mercator
Escalonamento
Escalonamento
n
Motivação
n
n
n
n
A Web é imensa: 10 M de servidores e bilhões
de páginas
Na prática, é impossível coletar todas as páginas
Custo de manutenção e processamento de grandes
coleções e índices é muito alto
Solução
n
Garantir que somente as melhores páginas serão
coletadas
Escalonamento
n
Em Profundidade ou LIFO
n
n
n
n
Resultada em uma coleta “focada”
Mais páginas por site
Resultados imprevisíveis
Pode-se limitar o número de níveis
Escalonamento
n
Em Largura ou FIFO
n
n
n
Produz uma coleta mais abrangente
Visita um maior número de sites
Mais usada por ser simples de implementar
Escalonamento
n
FIFO com sufixo de URL
n
n
Exemplo: *.fua.br, *.uol.com.br
Escalonamento em dois níveis:
n
n
n
n
sufixo (site)
URL
Garante cobertura balanceada entre sites
Bastante usado
Escalonamento
n
Baseadas em ranking de URLs
n
Baseada em conteúdo
n
n
Baseada em popularidade
n
n
Simples de avaliar, simples de subverter
Difícil de medir (número de acessos)
Baseada em conectividade
n
n
Número de referências (links)
“Fácil” de medir, robusto
Prioridade por conectividade
n
Referências (Backlink count)
n
n
O valor de uma página é proporcional ao número de
referências a ela
Variações:
n
n
Todos os links; links internos; links de servidores diferentes
Variações recursivas
n
Links de páginas de maior valor tem maior peso
n
Exemplo: PageRank [BP98]
Prioridade por conectividade
n
PageRank
n
Um usuário navegando aleatoriamente, seguindo
links com probabilidade uniforme d, visitaria uma
página p com probabilidade R(p)
k
d
R ( pi )
=
+
−
R ( p)
(1 d )∑
T
i = 1 C ( pi )
R( p )
C ( p)
p1... pk
T
d
PageRank de p
Fan - out de p
Páginas que apontam p
Número total de páginas
Amortizage m (d ~ 0.14)
Comparação de Estratégias
n
Experimento proposto por Cho et. al.
n
Coletar k páginas com vários tipos de
escalonamento
n
n
Critérios de avaliação
n
n
n
Randômico, FIFO, backlink e PageRank
Freqüência de termos, Backlink, PageRank, tipo de URLs
179.000 páginas do domínio stanford.edu
Resultado:
n
n
Estratégia baseada em PageRank é a melhor
Estratégia baseada em FIFO é boa
Comparação de Estratégias
n
Experimento proposto por Najork & Wiener
n
n
n
Usando somente PageRank como métrica
Resultado
n
n
328 M URLs durante 58 dias usando FIFO
Estratégia FIFO descobre páginas com alto
PageRank primeiro
Conclusão
n
Máquinas com ranking baseado em conectividade
devem coletar em FIFO
Exemplos de Escalonamento
n
AltaVista (versão inicial)
n
n
Mercator/Altavista
n
n
FIFO com exclusão por servidor
Alexa
n
n
Randômico com exclusão por servidor
Visita alternadamente conjuntos n servidores
GoogleBot
n
PageRank
Aspectos Práticos
Ética
n
Protocolo de exclusão de robôs
n
n
Recomendação informal para
desenvolvedores de robôs para a Web
Restrições de acesso
n
n
n
“robots.txt”
meta-tags especiais
Retardo mínimo entre requisições a um
mesmo servidor HTTP.
Regras de Exclusão para Sites
n
R o b o ts .tx t
n
n
n
n
n
Descreve regras de restrição para navegação
automática em um site
Encontra-se sempre na URL raiz de um servidor
Deve-se ser requisitado antes de tudo
A obediência as regras não é obrigatória
Se não forem seguidas, o administrador pode
bloquear acesso a todo conteúdo do servidor
Regras de Exclusão para Sites
Desabilita acesso a partes do site pra qualquer robô
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /private/
Desabilita acesso a todo o site para um robô específico
User-agent: Robocopo
Disallow: /
Regras de exclusão para páginas
n
n
Uso de metatags em páginas HTML
Não coletar, seguir links
n
n
Coletar, não seguir links
n
n
<meta name="ROBOTS" content="NOINDEX">
<meta name="ROBOTS" content="NOFOLLOW">
Não indexar, não seguir links
n
<meta name="ROBOTS” content="NOINDEX,NOFOLLOW">
Recomendações
n
Evitar “rapid fire”
n
n
n
Usar o header “User-Agent”
n
n
n
Usar retardo mínimo entre requisições a um
mesmo servidor HTTP
Tipicamente 60 segundos
Prover as informações necessárias para os
administradores de site
Nome do robô, e-mail, responsável, instituição,
etc.
Evitar coleta maciça em horas de tráfego alto
Restrições Práticas
n
Sites Gigantes
n
n
Limitar o número de páginas coletadas uma vez
que alguns sites contém um número
excessivamente grande páginas
Tipos de páginas
n
n
Não devem ser coletados objetos que não podem
ser indexados: .exe, .jpg, .gif, .ram, .au, …
Problemas:
n
n
Nem sempre é fácil detectar o tipo de objeto
Novos tipos aparecem todo dia
Restrições Práticas
n
Caminhos Relativos e ciclos
n
n
n
Frames e Frame Sets
Buracos Negros e Spider Traps:
n
n
<A HREF=“../../../aula/”>Coleta</A>
Links do tipo “próximo ano” em calendários
Objetos de tamanho muito grande
Coleta Incremental
Caracterização
n
Coletor periódico
n
n
Atualiza periodicamente a base de páginas
em batch
Coletor Incremenal
n
n
n
Atualiza a base de páginas de maneira
incremental e seletiva
Melhora o grau de atualidade das páginas
Descobre novas páginas mais facilmente
Caracterização
n
Objetivos
n
n
n
Atualizar as páginas já coletadas
Substituir páginas “menos imporantes”
como novas páginas mais importates.
Ideia
n
n
Fazer estimativas de quão frequente as
páginas mudam
Revisitar somente as páginas que tem
grande probalidade de mudar
Caracterização
n
Vantagens
n
n
n
Economia de banda
Melhora da autualidade da base
Incorpora novas páginas com mais rapidez
Evolução da Web
n
Experimento descrito em Cho & Garcia-Molina,
1999
n
n
n
17 a 24 de junho 1999
270 sites, 720 K páginas
Por domínos
n
n
n
n
n
com(132)
edu(78)
net/org(30)
gov(30)
Examinadas 3 K páginas de cada site diariamente
Intervalo médio de mudanças
0.35
Fração das páginas
0.30
0.25
0.20
0.15
0.10
0.05


0.00
1dia
1d-1s
1s-1m
1m-4m
>4m
Por domínio
Fração das páginas
0.6
0.5
0.4
com
netorg
edu
gov
0.3
0.2
0.1


0
1dia
1d-1s
1w-1m
1m-4m
>4m
Tempo de vida das páginas
70% vive mais de um mês
Fração de mudanças
n
1s
1s-1m 1m-4m >4m
Tempo de vida das páginas
Domínios .com são mais voláteis .edu e .gov
são mais perenes
Fração de mudanças
n
1s
1s-1m
1m-4m >4m
Tempo p/ 50% de mudança
n
Em quanto tempo a Web muda 50%?
n
Média global: 50 dias
Tempo p/ 50% de mudança
n
com:11 dias, gov: ~120 dias
Como muda a Web?
n
Baseado nos resultados experimentais
foi obtido um processo de Poisson
fT (t) = λ e-λ t
(t > 0)
no intevalor
Percentua de mundança
Como muda a Web?
Páginas que mudam
a cada 20 dias em média
Distribuição de
Poisson
Intervalo em dias
Coleta Periódica X Incremental
Períodica
Incremental
Atualizaçao Shadowing X In-Place
n
Shadowing
n
n
n
n
n
Consiste em armarmazenar as atualizações em um
espaço difrente da coleção corrente
Permite a disponibilidade da coleção corrente
Mais fácil de implementar
A coleção corrente fica obsoleta até o momento
da reconciliação
In-Place
n
n
Consideravelmente mais complicada
Garante a atualidade da coleção corrente
Frequência Fixa X Variável
n
Frequência fixa
n
n
Adotada na coleta períodica
Frequência Variável
n
Adequadata para coleta incremental com
atualizações in-place
Tratamento de Páginas
Duplicadas e Mirrors
Problema de Duplicação
n
n
Boa parte do conteúdo da Web se está
duplicado em vários sites
Os motivos são vários:
n
n
n
n
Balanceamento de carga, alta disponibilidade
Atração de tráfego (ex. Tucows)
Backup
Estimativas
n
n
Altavista, 1996 : 30% em 30 M de pags.
Google, 1997 : 36% em 26 M de pags.
Problema de Duplicação
n
Inconveniente para coleta
n
n
n
Inconveniente para processamento de
consultas
n
n
n
Esforço de coleta inútil
Espaço de armazenamento desnecessário
Maior demanda de processamento
Prejuízo na avaliação de similaridade
Inconveniente para os usuários
Duplicação de Páginas
n
n
Dadas duas URLs v ≠ u determinar se
os documentos referenciados tem o
mesmo conteúdo ou conteúdo
semelhante
Verificação exaustiva é inviável!!!
Duplicação Exata
n
n
n
n
Detecção por assinatura
Para cada URL u é calculada uma assinatura α(u)
que é armazenada
Se α(u’) = α(u) então u’ é uma duplicata de u
Message Digest 5 (MD5) (Rivest,92)
n
n
n
Gera assinaturas de 128 bits
Colisão: 1M entradas/seg. em ~600k anos
Geração eficiente
Duplicação Aproximada
n
n
Mais comum: baners, datas, etc.
Assinaturas não funcionam!
n
n
Se u’ é uma duplicata aproximada de u,
α(u’) ≠ α(u)
Solução aproximada (Broder,98)
n
n
Tomar amostras aleatórias das páginas
Gerar assinaturas das amostras
Mirrors
n
Na prática, coleções de páginas são
duplicadas
n
n
Mirrors
n
n
De 238.679 servidores com mais de 100 docs,
22.363 (9.4%) apresentam algum tipo de
duplicação (Bharat & Broder, 1998)
Sites que mantêm coleções de páginas duplicadas
de forma sistemática
Uso de assinaturas não reduz o número de
requisições feitas pelo coletor
Mirrors
LDP (Linux Doc. Project) = 25Mb, ~ 180 mirrors
Detecção de Mirrors
n
Bottom-Up
n
n
n
n
Cho, Shivakumar & Garcia-Molina, 2000
Detecção a partir do conteúdo das páginas
Construção progressiva de clusters
Top-Down
n
n
n
Bharat,Broder & Dean, 1999
Pré-filtragem baseada somente nas URLs
Testar somente os que passam na
filtragem
Bottom-up
n
Passo 1
n
Determinar pares de páginas similares com
base no conteúdo
Rid
1
1
1
2
2
Pid
10375
38950
14545
1026
18633
Bottom-up
n
Passo 2 – Estrutura de links
Link
Rid
1
1
1
2
Pid
10375
38950
14545
1026
Pid
1
1
2
2
Pid
2
3
6
10
Rid
1
1
1
2
Pid
10375
38950
14545
1026
Group by (R1.Rid, R2.Rid)
Ra = |R1|, Ls = Count(R1.Rid), Ld = Count(R2.Rid), Rb = |R2|
Bottom-Up
n
Passo 3 – Construção de clusters
S←{}
Para cada (Ra, Ls, Ld, Rb)
Se (Ra = Ls = Ld = Rb)
S ← S U {<Ra, Rb> }
Union-Find(S)
S contém pares de URLs no mesmo cluster
Bottom-up
Clusters Triviais (pares)
Expansão de Clusters
Bottom-up
Clusters Máximos
Resultados de experimento
Rank
Site
Replicas
Tamanho
1
TUCOWS WinSock utilities
http://www.tucows.com
360
1052
2
LDP Linux Doc. Project
http://sunsite.unc.edu/LDP
143
1359
3
Apache Web server
125
115
http://www.apache.org
4
JAVA 1.0.2 API
http://java.sun.com
59
552
5
Mars Pathnder
http://mars.jpl.nasa.gov
49
498
Top-Down
n
Pré-Filtragem
n
n
n
n
Não considera conteúdo das páginas
Baseada somente na estrutura extraída de
um conjunto de URLs
Algoritmos de análise de URL
Teste final baseado em similaridade de
conteúdo
Pré-Filtragem
n
Baseada em endereço IP
n
n
Determina hosts que possuem IP idênticos
ou muito similares.
Baseada nas strings das URL
n
n
Determina pares de hosts que tem URL
altamente similar.
Similaridade baseada no modelo vetorial
Pré-Filtragem
n
Baseada na conectividade dos hosts
n
n
n
Considera um hosts como um documento
único
Analisa a estrutura de ligação entre estes
pseudo-documentos.
Dois hosts são considerados mirrors se eles
apontam para conjuntos similares de hosts
Pré-Filtragem
n
Baseada nas strings da URL +
conectividade
n
Dois hosts são considerados mirrors se eles
possuem caminhos similares e documentos
na mesma posição possuem links similares
Experimentos
n
Entrada:
n
n
n
140 M URLs em 233.035 hosts com >100 URLs
Informação de conectividade
Para cada algoritmo de pré-filtragem
n
n
Determinar uma raking de 25.000 pares de host
Testar cada par sugerido usando conteúdo
Experimentos
n
Avaliação
n
n
Precisão: quais pares sugeridos são mirrors
Revocação relativa: quais pares são
sugeridos considerando todos os métodos
foram encontrados por um método em
particular
Experimentos
n
Resultados
n
n
n
Melhores métodos quanto a precisão são
os baseados em IP e prefixo de URL
Métodos individuais são limitados quanto a
revocação
Métodos combinados:
n
n
Precisão: 0.57%
Revocação: 0.86%
Artigos
n
n
n
n
The Evolution of the Web and Implications for an
Incremental Crawler, Junghoo Cho Hector GarciaMolina
Eficient Crawling Through URL Ordering, Junghoo
Cho and Hector Garcia-Molina and Lawrence Page
Breadth-First Search Crawling Yields High-Quality
Pages, Marc Najork Janet L. Wiener
Um Retrato da Web Brasileira, Veloso e outros
Download

Web Crawling