Você está na página 1de 77

Web Crawling

Coleta Automática na Web

Altigran Silva e Edleno Moura Julho de 2002

Web Crawling Coleta Automática na Web Altigran Silva e Edleno Moura Julho de 2002
Sumário
Sumário

n

Algoritmo de coleta

n

Arquitetura

n

Estratégias de escalonamento

n

Aspectos práticos

n

Coleta incremental

n

Páginas duplicadas e Mirrors

Coleta de Páginas
Coleta de Páginas

n Objetivo

n Coleta automática e sistemática de documentos da Web a serem indexados e consultados pela máquina de busca

n Coletores de Páginas

n

Crawlers = Spiders = Robots

n

Portugues: Navegadores Automáticos (??)

Coleta de Páginas
Coleta de Páginas
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Coleta de Páginas Início Web Próxima URL Coletar página Extrair URLS URLs Iniciais URLs a visitar
Início Web
Início
Web
Próxima URL Coletar página Extrair URLS
Próxima URL
Coletar página
Extrair URLS

URLs Iniciais

URLs a visitar

URLs visitadas

páginas
páginas
Exemplo
Exemplo
Exemplo URL Inicial

URL Inicial

Exemplo URL Inicial
Exemplo
Exemplo

Seguindo Links

Exemplo Seguindo Links
Exemplo Seguindo Links
Exemplo
Exemplo
Exemplo
Exemplo
Exemplo Não serão coletadas !!!
Exemplo
Não serão
coletadas !!!
Seguindo Links
Seguindo Links
Seguindo Links

Arquitetura

Arquitetura
Arquitetura Típica
Arquitetura Típica
Web
Web

Requisições

HTTP

Servidor de Nomes (DNS)
Servidor
de
Nomes (DNS)
Típica Web Requisições HTTP Servidor de Nomes (DNS) Requisições DNS Coletor Coletor Coletor Páginas

Requisições DNS

HTTP Servidor de Nomes (DNS) Requisições DNS Coletor Coletor Coletor Páginas coletadas Servidor de
HTTP Servidor de Nomes (DNS) Requisições DNS Coletor Coletor Coletor Páginas coletadas Servidor de
Coletor Coletor Coletor
Coletor
Coletor
Coletor

Páginas coletadas

DNS Coletor Coletor Coletor Páginas coletadas Servidor de Armazenamento URLs a coletar URLs
Servidor de Armazenamento
Servidor
de
Armazenamento
Coletor Páginas coletadas Servidor de Armazenamento URLs a coletar URLs extraídas Escalonador de URLs

URLs a coletar

URLs extraídas

Escalonador de URLs
Escalonador
de
URLs
URLs a coletar URLs extraídas Escalonador de URLs Cache de Nomes Base de Páginas Iniciais Novas

Cache de Nomes

URLs a coletar URLs extraídas Escalonador de URLs Cache de Nomes Base de Páginas Iniciais Novas

Base de Páginas

URLs a coletar URLs extraídas Escalonador de URLs Cache de Nomes Base de Páginas Iniciais Novas

Iniciais

URLs a coletar URLs extraídas Escalonador de URLs Cache de Nomes Base de Páginas Iniciais Novas

Novas

URLs a coletar URLs extraídas Escalonador de URLs Cache de Nomes Base de Páginas Iniciais Novas

Visitadas

Componentes
Componentes

n Coletores

n

Responsáveis pela requisição de páginas aos servidores HTTP

n

Extraem os links das páginas recebidas e enviam ao escalonador

n

Requisitam do escalonador uma ou mais URLs a serem coletadas

n

Podem realizar um escalonamento local (short term scheduling)

Componentes
Componentes

n Servidor de Armazenamento

n

Recebem as páginas ou outros objetos coletados e armazenam em uma base local.

n

Fazem a extração (parsing) de texto

n

Podem tratar vários formatos: Postscript, PDF, Word, Powerpoint, etc.

Componentes
Componentes

n Servidor de Nomes

n

Atendem requisições DNS dos coletores

n

Mantêm um cache de identificadores DNS (nomes) resolvidos

n

Crucial para evitar que cada coletor faça requisições DNS remotas

n

Potencial ponto de gargalo

Componentes
Componentes

n Escalonador

n

Responsável por decidir qual a próxima URL a ser coletada

n

Coordena as ações dos coletores

n

Deve garantir protocolo de exclusão

n Retardo mínimo entre requisições a um mesmo servidor HTTP.

n

Deve garantir que não haverão coletas repetidas

n

Potencial ponto de gargalo

Performance Típica
Performance Típica

n

Mercator (Maio de 1999)

 

n

77.4 M requisições HTTP em 8 dias

n

112 docs/seg e 1.682 KB/seg

n

GoogleBot (Abril de 1998)

n

26 M requisições HTTP em 9 dias

n

33.5 docs/seg e 200 KB/seg

n

The Internet Archive crawler (Maio de 1997)

n

4 M HTML docs/dia

n

46.3 HTML docs/seg and 231 KB/seg

Mercator
Mercator

n

Hardware

 

n

Digital Ultimate Workstation 533 MHz, Alpha processors, 2 GB de RAM, 118 GB de disco local

n

Conexão de 100 Mbit/sec FDDI

n

Software

n

Escrito Java

n

Procesador Java srcjava otimizado pela Digital.

Mercator
Mercator
Mercator

Escalonamento

Escalonamento
Escalonamento
Escalonamento

n

Motivação

 

n

A Web é imensa: 10 M de servidores e bilhões de páginas

n

Na prática, é impossível coletar todas as páginas

n

Custo de manutenção e processamento de grandes coleções e índices é muito alto

n

Solução

n Garantir que somente as melhores páginas serão coletadas

Escalonamento
Escalonamento

n Em Profundidade ou LIFO

n

Resultada em uma coleta “focada”

n

Mais páginas por site

n

Resultados imprevisíveis

n

Pode-se limitar o número de níveis

Escalonamento
Escalonamento

n Em Largura ou FIFO

n

Produz uma coleta mais abrangente

n

Visita um maior número de sites

n

Mais usada por ser simples de implementar

Escalonamento
Escalonamento

n FIFO com sufixo de URL

n

n

n

n

Exemplo: *.fua.br, *.uol.com.br

Escalonamento em dois níveis:

n sufixo (site) n URL

Garante cobertura balanceada entre sites

Bastante usado

Escalonamento
Escalonamento

n Baseadas em ranking de URLs

n

Baseada em conteúdo

n

Simples de avaliar, simples de subverter

n

Baseada em popularidade

n

Difícil de medir (número de acessos)

n

Baseada em conectividade

n

Número de referências (links)

n

“Fácil” de medir, robusto

Prioridade por conectividade
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 Todos os links; links internos; links de servidores diferentes

n

Variações recursivas

n

Links de páginas de maior valor tem maior peso

n

Exemplo: PageRank [BP98]

Prioridade por conectividade
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)

R

(

p

)

=

d

T

+

(1

-

d

)

k

Â

i

= 1

R

(

p

i

)

C

(

p

i

)

R

(

p

)

PageRank de

p

C

(

p

)

Fan - out de

p

p

1

p

k

Páginas que apontam

p

T

Número total de páginas

d

Amortizagem (d ~ 0.14)

Comparação de Estratégias
Comparação de Estratégias

n Experimento proposto por Cho et. al.

n

Coletar k páginas com vários tipos de escalonamento

n

Randômico, FIFO, backlink e PageRank

n

Critérios de avaliação

n

Freqüência de termos, Backlink, PageRank, tipo de URLs

n

179.000 páginas do domínio stanford.edu

n

Resultado:

n

Estratégia baseada em PageRank é a melhor

n

Estratégia baseada em FIFO é boa

Comparação de Estratégias
Comparação de Estratégias

n

Experimento proposto por Najork & Wiener

n

328 M URLs durante 58 dias usando FIFO

n

Usando somente PageRank como métrica

n

Resultado

n

Estratégia FIFO descobre páginas com alto PageRank primeiro

n

Conclusão

n Máquinas com ranking baseado em conectividade devem coletar em FIFO

Exemplos de Escalonamento
Exemplos de Escalonamento

n

AltaVista (versão inicial)

n

Randômico com exclusão por servidor

n

Mercator/Altavista

n

FIFO com exclusão por servidor

n

Alexa

 

n

Visita alternadamente conjuntos n servidores

n

GoogleBot

n PageRank

Aspectos Práticos

Aspectos Práticos
Ética
Ética

n Protocolo de exclusão de robôs

n

Recomendação informal para desenvolvedores de robôs para a Web

n

Restrições de acesso

n

“robots.txt”

n

meta-tags especiais

n

Retardo mínimo entre requisições a um mesmo servidor HTTP.

Regras de Exclusão para Sites
Regras de Exclusão para Sites

n Robo ts .txt

n

Descreve regras de restrição para navegação automática em um site

n

Encontra-se sempre na URL raiz de um servidor

n

Deve-se ser requisitado antes de tudo

n

A obediência as regras não é obrigatória

n

Se não forem seguidas, o administrador pode bloquear acesso a todo conteúdo do servidor

Regras de Exclusão para Sites
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
Regras de exclusão para páginas

n

Uso de metatags em páginas HTML

n

Não coletar, seguir links

n

<meta name="ROBOTS" content="NOINDEX">

n

Coletar, não seguir links

n

<meta name="ROBOTS" content="NOFOLLOW">

n

Não indexar, não seguir links

n <meta name="ROBOTS” content="NOINDEX,NOFOLLOW">

Recomendações
Recomendações

n

Evitar “rapid fire”

 

n

Usar retardo mínimo entre requisições a um mesmo servidor HTTP

n

Tipicamente 60 segundos

n

Usar o header “User-Agent”

 

n

Prover as informações necessárias para os administradores de site

n

Nome do robô, e-mail, responsável, instituição, etc.

n

Evitar coleta maciça em horas de tráfego alto

Restrições Práticas
Restrições Práticas

n

Sites Gigantes

n Limitar o número de páginas coletadas uma vez que alguns sites contém um número excessivamente grande páginas

n

Tipos de páginas

n

Não devem ser coletados objetos que não podem ser indexados: .exe, .jpg, .gif, .ram, .au, …

n

Problemas:

n

Nem sempre é fácil detectar o tipo de objeto

n

Novos tipos aparecem todo dia

Restrições Práticas
Restrições Práticas

n

Caminhos Relativos e ciclos

n <A HREF=“

/

/

/aula/”>Coleta</A>

n

Frames e Frame Sets

n

Buracos Negros e Spider Traps:

n Links do tipo “próximo ano” em calendários

n

Objetos de tamanho muito grande

Coleta Incremental

Coleta Incremental
Caracterização
Caracterização

n

Coletor periódico

n Atualiza periodicamente a base de páginas em batch

n

Coletor Incremenal

n

Atualiza a base de páginas de maneira incremental e seletiva

n

Melhora o grau de atualidade das páginas

n

Descobre novas páginas mais facilmente

Caracterização
Caracterização

n

Objetivos

 

n

Atualizar as páginas já coletadas

n

Substituir páginas “menos imporantes” como novas páginas mais importates.

n

Ideia

n

Fazer estimativas de quão frequente as páginas mudam

n

Revisitar somente as páginas que tem grande probalidade de mudar

Caracterização
Caracterização

n Vantagens

n

Economia de banda

n

Melhora da autualidade da base

n

Incorpora novas páginas com mais rapidez

Evolução da Web
Evolução da Web

n Experimento descrito em Cho & Garcia-Molina,

1999

n

17 a 24 de junho 1999

n

270 sites, 720 K páginas

n

Por domínos

 

n

com(132)

n

edu(78)

n

net/org(30)

n

gov(30)

n

Examinadas 3 K páginas de cada site diariamente

Intervalo médio de mudanças
Intervalo médio de mudanças
0.35 0.30 0.25 0.20 0.15 0.10 0.05 æ æ 0.00 1dia 1d-1s 1s-1m 1m-4m >4m
0.35
0.30
0.25
0.20
0.15
0.10
0.05
æ
æ
0.00
1dia
1d-1s
1s-1m
1m-4m
>4m
Fração das páginas
Por domínio
Por domínio
0.6 0.5 0.4 0.3 0.2 0.1 æ æ 0 1dia 1d-1s 1w-1m 1m-4m >4m Fração
0.6
0.5
0.4
0.3
0.2
0.1
æ
æ
0
1dia
1d-1s
1w-1m
1m-4m
>4m
Fração das páginas

comnetorg edu gov

netorgcom edu gov

educom netorg gov

govcom netorg edu

Tempo de vida das páginas
Tempo de vida das páginas

n 70% vive mais de um mês

Fração de mudanças
Fração de mudanças

1s

1s-1m 1m-4m >4m

Tempo de vida das páginas
Tempo de vida das páginas

n Domínios .com são mais voláteis .edu e .gov são mais perenes

Fração de mudanças
Fração de mudanças

1s

1s-1m

1m-4m

>4m

Tempo p/ 50% de mudança
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 Em quanto tempo a Web muda 50%? n Média global:
Tempo p/ 50% de mudança
Tempo p/ 50% de mudança

n com:11 dias, gov: ~120 dias

Tempo p/ 50% de mudança n com:11 dias, gov: ~120 dias
Como muda a Web?
Como muda a Web?

n Baseado nos resultados experimentais foi obtido um processo de Poisson

f T (t) = le -l t

(t > 0)

Percentua de mundança

Como muda a Web?
Como muda a Web?
Páginas que mudam a cada 20 dias em média Distribuição de Poisson no intevalor
Páginas que mudam
a cada 20 dias em média
Distribuição de
Poisson
no intevalor

Intervalo em dias

Coleta Periódica X Incremental Períodica
Coleta Periódica X Incremental
Períodica

Incremental

Coleta Periódica X Incremental Períodica Incremental
Atualizaçao Shadowing X In-Place n Shadowing   n Consiste em armarmazenar as atualizações em um

Atualizaçao Shadowing X In-Place

n

Shadowing

 

n

Consiste em armarmazenar as atualizações em um espaço difrente da coleção corrente

n

Permite a disponibilidade da coleção corrente

n

Mais fácil de implementar

n

A coleção corrente fica obsoleta até o momento da reconciliação

n

In-Place

n

Consideravelmente mais complicada

n

Garante a atualidade da coleção corrente

Frequência Fixa X Variável
Frequência Fixa X Variável

n

Frequência fixa

n

Adotada na coleta períodica

n

Frequência Variável

n Adequadata para coleta incremental com atualizações in-place

Tratamento de Páginas Duplicadas e Mirrors

Tratamento de Páginas Duplicadas e Mirrors
Problema de Duplicação
Problema de Duplicação

n

Boa parte do conteúdo da Web se está duplicado em vários sites

n

Os motivos são vários:

 

n

Balanceamento de carga, alta disponibilidade

n

Atração de tráfego (ex. Tucows)

n

Backup

n

Estimativas

n

Altavista, 1996 : 30% em 30 M de pags.

n

Google, 1997 : 36% em 26 M de pags.

Problema de Duplicação
Problema de Duplicação

n

Inconveniente para coleta

 

n

Esforço de coleta inútil

n

Espaço de armazenamento desnecessário

n

Inconveniente para processamento de consultas

 

n

Maior demanda de processamento

n

Prejuízo na avaliação de similaridade

n

Inconveniente para os usuários

Duplicação de Páginas
Duplicação de Páginas

n Dadas duas URLs v ¹ u determinar se os documentos referenciados tem o mesmo conteúdo ou conteúdo semelhante n Verificação exaustiva é inviável!!!

Duplicação Exata
Duplicação Exata

n

Detecção por assinatura

n

Para cada URL u é calculada uma assinatura a(u) que é armazenada

n

Se a(u’) = a(u) então u’ é uma duplicata de u

n

Message Digest 5 (MD5) (Rivest,92)

n

Gera assinaturas de 128 bits

n

Colisão: 1M entradas/seg. em ~600k anos

n

Geração eficiente

Duplicação Aproximada
Duplicação Aproximada

n Mais comum: baners, datas, etc. n Assinaturas não funcionam!

n Se u’ é uma duplicata aproximada de u, a(u’) ¹ a(u)

n Solução aproximada (Broder,98)

n

Tomar amostras aleatórias das páginas

n

Gerar assinaturas das amostras

Mirrors
Mirrors

n

Na prática, coleções de páginas são duplicadas

n

De 238.679 servidores com mais de 100 docs, 22.363 (9.4%) apresentam algum tipo de duplicação (Bharat & Broder, 1998)

n

Mirrors

n

Sites que mantêm coleções de páginas duplicadas de forma sistemática

n

Uso de assinaturas não reduz o número de requisições feitas pelo coletor

Mirrors
Mirrors
Mirrors LDP (Linux Doc. Project) = 25Mb, ~ 180 mirrors

LDP (Linux Doc. Project) = 25Mb, ~ 180 mirrors

Detecção de Mirrors
Detecção de Mirrors

n

Bottom-Up

 

n

Cho, Shivakumar & Garcia-Molina, 2000

n

Detecção a partir do conteúdo das páginas

n

Construção progressiva de clusters

n

Top-Down

n

Bharat,Broder & Dean, 1999

n

Pré-filtragem baseada somente nas URLs

n

Testar somente os que passam na filtragem

Bottom-up
Bottom-up

n Passo 1

n Determinar pares de páginas similares com base no conteúdo

Rid

Pid

1

10375

1

38950

1

14545

2

1026

2

18633

Bottom-up
Bottom-up

n Passo 2 – Estrutura de links

Rid

Pid

1 10375

1 38950

1 14545

2 1026

de links Rid Pid 1 10375 1 38950 1 14545 2 1026 Link Pid Pid 1

Link

Pid

Pid

1

2

1

3

2

6

2

10

Link Pid Pid 1 2 1 3 2 6 2 10 Rid Pid 1 10375 1

Rid

Pid

1 10375

1 38950

1 14545

2 1026

2 10 Rid Pid 1 10375 1 38950 1 14545 2 1026 Group by (R1.Rid, R2.Rid)

Group by (R1.Rid, R2.Rid)

Ra = |R1|, Ls = Count(R1.Rid), Ld = Count(R2.Rid), Rb = |R2|

Bottom-Up
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
Bottom-up
Bottom-up Clusters Triviais (pares) Expansão de Clusters

Clusters Triviais (pares)

Bottom-up Clusters Triviais (pares) Expansão de Clusters

Expansão de Clusters

Bottom-up
Bottom-up
Bottom-up Clusters Máximos

Clusters Máximos

Resultados de experimento
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
Top-Down

n

Pré-Filtragem

 

n

Não considera conteúdo das páginas

n

Baseada somente na estrutura extraída de um conjunto de URLs

n

Algoritmos de análise de URL

n

Teste final baseado em similaridade de conteúdo

Pré-Filtragem
Pré-Filtragem

n

Baseada em endereço IP

n Determina hosts que possuem IP idênticos ou muito similares.

n

Baseada nas strings das URL

n

Determina pares de hosts que tem URL altamente similar.

n

Similaridade baseada no modelo vetorial

Pré-Filtragem
Pré-Filtragem

n Baseada na conectividade dos hosts

n

Considera um hosts como um documento único

n

Analisa a estrutura de ligação entre estes pseudo-documentos.

n

Dois hosts são considerados mirrors se eles apontam para conjuntos similares de hosts

Pré-Filtragem
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
Experimentos

n

Entrada:

 

n

140 M URLs em 233.035 hosts com >100 URLs

n

Informação de conectividade

n

Para cada algoritmo de pré-filtragem

n

Determinar uma raking de 25.000 pares de host

n

Testar cada par sugerido usando conteúdo

Experimentos
Experimentos

n Avaliação

n

Precisão: quais pares sugeridos são mirrors

n

Revocação relativa: quais pares são sugeridos considerando todos os métodos foram encontrados por um método em particular

Experimentos
Experimentos

n Resultados

n

Melhores métodos quanto a precisão são os baseados em IP e prefixo de URL

n

Métodos individuais são limitados quanto a revocação

n

Métodos combinados:

n

Precisão: 0.57%

n

Revocação: 0.86%

Artigos
Artigos

n

The Evolution of the Web and Implications for an Incremental Crawler, Junghoo Cho Hector Garcia- Molina

n

Eficient Crawling Through URL Ordering, Junghoo Cho and Hector Garcia-Molina and Lawrence Page

n

Breadth-First Search Crawling Yields High-Quality Pages, Marc Najork Janet L. Wiener

n

Um Retrato da Web Brasileira, Veloso e outros