Вы находитесь на странице: 1из 77

Coleta Automtica na Web

Altigran Silva e Edleno Moura Julho de 2002

Web Crawling

Sumrio
n n n n n n

Algoritmo de coleta Arquitetura Estratgias de escalonamento Aspectos prticos Coleta incremental Pginas duplicadas e Mirrors

Coleta de Pginas
n

Objetivo
n

Coleta automtica e sistemtica de documentos da Web a serem indexados e consultados pela mquina de busca Crawlers = Spiders = Robots Portugues: Navegadores Automticos (??)

Coletores de Pginas
n n

Coleta de Pginas
URLs Iniciais

Incio Web Prxima URL Coletar pgina Extrair URLS pginas


URLs a visitar

URLs visitadas

Exemplo

URL Inicial

Exemplo
Seguindo Links

Exemplo

Exemplo

Exemplo

No sero coletadas !!!

Seguindo Links

Arquitetura

Arquitetura Tpica
Web
Requisies DNS Servidor de Nomes (DNS) Cache de Nomes

Requisies HTTP

Coletor Coletor Coletor

Pginas coletadas

Servidor de Armazenamento

Base de Pginas

URLs a coletar URLs extradas

Escalonador de URLs

Iniciais

Novas Visitadas

Componentes
n

Coletores
n

Responsveis pela requisio de pginas aos servidores HTTP Extraem os links das pginas 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 pginas ou outros objetos coletados e armazenam em uma base local. Fazem a extrao (parsing) de texto Podem tratar vrios formatos: Postscript, PDF, Word, Powerpoint, etc.

Componentes
n

Servidor de Nomes
n n

Atendem requisies DNS dos coletores Mantm um cache de identificadores DNS (nomes) resolvidos Crucial para evitar que cada coletor faa requisies DNS remotas Potencial ponto de gargalo

Componentes
n

Escalonador
n

n n

Responsvel por decidir qual a prxima URL a ser coletada Coordena as aes dos coletores Deve garantir protocolo de excluso
n

Retardo mnimo entre requisies a um mesmo servidor HTTP.

n n

Deve garantir que no havero coletas repetidas Potencial ponto de gargalo

Performance Tpica
n

Mercator (Maio de 1999)


n n

77.4 M requisies HTTP em 8 dias 112 docs/seg e 1.682 KB/seg 26 M requisies HTTP em 9 dias 33.5 docs/seg e 200 KB/seg 4 M HTML docs/dia 46.3 HTML docs/seg and 231 KB/seg

GoogleBot (Abril de 1998)


n n

The Internet Archive crawler (Maio de 1997)


n n

Mercator
n

Hardware
n

Digital Ultimate Workstation 533 MHz, Alpha processors, 2 GB de RAM, 118 GB de disco local Conexo de 100 Mbit/sec FDDI Escrito Java Procesador Java srcjava otimizado pela Digital.

Software
n n

Mercator

Escalonamento

Escalonamento
n

Motivao
n

A Web imensa: 10 M de servidores e bilhes de pginas Na prtica, impossvel coletar todas as pginas Custo de manuteno e processamento de grandes colees e ndices muito alto Garantir que somente as melhores pginas sero coletadas

n n

Soluo
n

Escalonamento
n

Em Profundidade ou LIFO
n n n n

Resultada em uma coleta focada Mais pginas por site Resultados imprevisveis Pode-se limitar o nmero de nveis

Escalonamento
n

Em Largura ou FIFO
n n n

Produz uma coleta mais abrangente Visita um maior nmero 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 nveis:


n n

sufixo (site) URL

n n

Garante cobertura balanceada entre sites Bastante usado

Escalonamento
n

Baseadas em ranking de URLs


n

Baseada em contedo
n

Simples de avaliar, simples de subverter Difcil de medir (nmero de acessos) Nmero de referncias (links) Fcil de medir, robusto

Baseada em popularidade
n

Baseada em conectividade
n n

Prioridade por conectividade


n

Referncias (Backlink count)


n

O valor de uma pgina proporcional ao nmero de referncias a ela Variaes:


n

Todos os links; links internos; links de servidores diferentes

Variaes recursivas
n n

Links de pginas de maior valor tem maior peso Exemplo: PageRank [BP98]

Prioridade por conectividade


n

PageRank
n

Um usurio navegando aleatoriamente, seguindo links com probabilidade uniforme d, visitaria uma pgina p com probabilidade R(p) R( p ) C ( p) p1... pk T d PageRank de p Fan - out de p Pginas que apontam p Nmero total de pginas Amortizage m (d ~ 0.14)

k d R ( pi ) = + (1 d ) R ( p) T i = 1 C ( pi )

Comparao de Estratgias
n

Experimento proposto por Cho et. al.


n

Coletar k pginas com vrios tipos de escalonamento


n

Randmico, FIFO, backlink e PageRank Freqncia de termos, Backlink, PageRank, tipo de URLs

Critrios de avaliao
n

n n

179.000 pginas do domnio stanford.edu Resultado:


n n

Estratgia baseada em PageRank a melhor Estratgia baseada em FIFO boa

Comparao de Estratgias
n

Experimento proposto por Najork & Wiener


n

328 M URLs durante 58 dias usando FIFO

n n

Usando somente PageRank como mtrica Resultado


n

Estratgia FIFO descobre pginas com alto PageRank primeiro Mquinas com ranking baseado em conectividade devem coletar em FIFO

Concluso
n

Exemplos de Escalonamento
n

AltaVista (verso inicial)


n

Randmico com excluso por servidor FIFO com excluso por servidor Visita alternadamente conjuntos n servidores PageRank

Mercator/Altavista
n

Alexa
n

GoogleBot
n

Aspectos Prticos

tica
n

Protocolo de excluso de robs


n

Recomendao informal para desenvolvedores de robs para a Web Restries de acesso


n n

robots.txt meta-tags especiais

Retardo mnimo entre requisies a um mesmo servidor HTTP.

Regras de Excluso para Sites


n

R o b o ts .tx t
n

n n n n

Descreve regras de restrio para navegao automtica em um site Encontra-se sempre na URL raiz de um servidor Deve-se ser requisitado antes de tudo A obedincia as regras no obrigatria Se no forem seguidas, o administrador pode bloquear acesso a todo contedo do servidor

Regras de Excluso 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 especfico


User-agent: Robocopo Disallow: /

Regras de excluso para pginas


n n

Uso de metatags em pginas HTML No coletar, seguir links


n

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

Coletar, no seguir links


n

No indexar, no seguir links


n

Recomendaes
n

Evitar rapid fire


n

Usar retardo mnimo entre requisies a um mesmo servidor HTTP Tipicamente 60 segundos Prover as informaes necessrias para os administradores de site Nome do rob, e-mail, responsvel, instituio, etc.

Usar o header User-Agent


n

Evitar coleta macia em horas de trfego alto

Restries Prticas
n

Sites Gigantes
n

Limitar o nmero de pginas coletadas uma vez que alguns sites contm um nmero excessivamente grande pginas No devem ser coletados objetos que no podem ser indexados: .exe, .jpg, .gif, .ram, .au, Problemas:
n n

Tipos de pginas
n

Nem sempre fcil detectar o tipo de objeto Novos tipos aparecem todo dia

Restries Prticas
n

Caminhos Relativos e ciclos


n

<A HREF=../../../aula/>Coleta</A>

n n

Frames e Frame Sets Buracos Negros e Spider Traps:


n

Links do tipo prximo ano em calendrios

Objetos de tamanho muito grande

Coleta Incremental

Caracterizao
n

Coletor peridico
n

Atualiza periodicamente a base de pginas em batch Atualiza a base de pginas de maneira incremental e seletiva Melhora o grau de atualidade das pginas Descobre novas pginas mais facilmente

Coletor Incremenal
n

n n

Caracterizao
n

Objetivos
n n

Atualizar as pginas j coletadas Substituir pginas menos imporantes como novas pginas mais importates. Fazer estimativas de quo frequente as pginas mudam Revisitar somente as pginas que tem grande probalidade de mudar

Ideia
n

Caracterizao
n

Vantagens
n n n

Economia de banda Melhora da autualidade da base Incorpora novas pginas com mais rapidez

Evoluo da Web
n

Experimento descrito em Cho & Garcia-Molina, 1999


n n n

17 a 24 de junho 1999 270 sites, 720 K pginas Por domnos


n n n n

com(132) edu(78) net/org(30) gov(30)

Examinadas 3 K pginas de cada site diariamente

Intervalo mdio de mudanas


0.35 0.30

Frao das pginas

0.25 0.20 0.15 0.10 0.05 0.00 1dia 1d-1s 1s-1m 1m-4m >4m

Por domnio
0.6

Frao das pginas

0.5 0.4 0.3 0.2 0.1


com netorg edu gov

0 1dia 1d-1s 1w-1m 1m-4m >4m

Tempo de vida das pginas


n

70% vive mais de um ms

Frao de mudanas

1s

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

Tempo de vida das pginas


n

Domnios .com so mais volteis .edu e .gov so mais perenes

Frao de mudanas

1s

1s-1m

1m-4m >4m

Tempo p/ 50% de mudana


n

Em quanto tempo a Web muda 50%?


n

Mdia global: 50 dias

Tempo p/ 50% de mudana


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)

Como muda a Web?


Percentua de mundana
Pginas que mudam a cada 20 dias em mdia

no intevalor

Distribuio de Poisson

Intervalo em dias

Coleta Peridica X Incremental

Perodica

Incremental

Atualizaao Shadowing X In-Place


n

Shadowing
n

n n n

Consiste em armarmazenar as atualizaes em um espao difrente da coleo corrente Permite a disponibilidade da coleo corrente Mais fcil de implementar A coleo corrente fica obsoleta at o momento da reconciliao Consideravelmente mais complicada Garante a atualidade da coleo corrente

In-Place
n n

Frequncia Fixa X Varivel


n

Frequncia fixa
n

Adotada na coleta perodica Adequadata para coleta incremental com atualizaes in-place

Frequncia Varivel
n

Tratamento de Pginas Duplicadas e Mirrors

Problema de Duplicao
n n

Boa parte do contedo da Web se est duplicado em vrios sites Os motivos so vrios:
n n n

Balanceamento de carga, alta disponibilidade Atrao de trfego (ex. Tucows) Backup Altavista, 1996 : 30% em 30 M de pags. Google, 1997 : 36% em 26 M de pags.

Estimativas
n n

Problema de Duplicao
n

Inconveniente para coleta


n n

Esforo de coleta intil Espao de armazenamento desnecessrio

Inconveniente para processamento de consultas


n n

Maior demanda de processamento Prejuzo na avaliao de similaridade

Inconveniente para os usurios

Duplicao de Pginas
n

Dadas duas URLs v u determinar se os documentos referenciados tem o mesmo contedo ou contedo semelhante Verificao exaustiva invivel!!!

Duplicao Exata
n n

n n

Deteco por assinatura Para cada URL u calculada uma assinatura (u) que armazenada Se (u) = (u) ento u uma duplicata de u Message Digest 5 (MD5) (Rivest,92)
n n n

Gera assinaturas de 128 bits Coliso: 1M entradas/seg. em ~600k anos Gerao eficiente

Duplicao Aproximada
n n

Mais comum: baners, datas, etc. Assinaturas no funcionam!


n

Se u uma duplicata aproximada de u, (u) (u) Tomar amostras aleatrias das pginas Gerar assinaturas das amostras

Soluo aproximada (Broder,98)


n n

Mirrors
n

Na prtica, colees de pginas so duplicadas


n

De 238.679 servidores com mais de 100 docs, 22.363 (9.4%) apresentam algum tipo de duplicao (Bharat & Broder, 1998) Sites que mantm colees de pginas duplicadas de forma sistemtica

Mirrors
n

Uso de assinaturas no reduz o nmero de requisies feitas pelo coletor

Mirrors

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

Deteco de Mirrors
n

Bottom-Up
n n n

Cho, Shivakumar & Garcia-Molina, 2000 Deteco a partir do contedo das pginas Construo progressiva de clusters Bharat,Broder & Dean, 1999

Top-Down
n

n n

Pr-filtragem baseada somente nas URLs Testar somente os que passam na filtragem

Bottom-up
n

Passo 1
n

Determinar pares de pginas similares com base no contedo


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 Construo de clusters S{} Para cada (Ra, Ls, Ld, Rb) Se (Ra = Ls = Ld = Rb) S S U {<Ra, Rb> } Union-Find(S)
S contm pares de URLs no mesmo cluster

Bottom-up

Clusters Triviais (pares)

Expanso de Clusters

Bottom-up

Clusters Mximos

Resultados de experimento
Rank 1 2 3 4 5 Site TUCOWS WinSock utilities http://www.tucows.com LDP Linux Doc. Project http://sunsite.unc.edu/LDP Apache Web server http://www.apache.org JAVA 1.0.2 API http://java.sun.com Mars Pathnder http://mars.jpl.nasa.gov 59 49 552 498 Replicas 360 143 125 Tamanho 1052 1359 115

Top-Down
n

Pr-Filtragem
n n

No considera contedo das pginas Baseada somente na estrutura extrada de um conjunto de URLs Algoritmos de anlise de URL

Teste final baseado em similaridade de contedo

Pr-Filtragem
n

Baseada em endereo IP
n

Determina hosts que possuem IP idnticos ou muito similares. Determina pares de hosts que tem URL altamente similar. Similaridade baseada no modelo vetorial

Baseada nas strings das URL


n

Pr-Filtragem
n

Baseada na conectividade dos hosts


n

Considera um hosts como um documento nico Analisa a estrutura de ligao entre estes pseudo-documentos. Dois hosts so considerados mirrors se eles apontam para conjuntos similares de hosts

Pr-Filtragem
n

Baseada nas strings da URL + conectividade


n

Dois hosts so considerados mirrors se eles possuem caminhos similares e documentos na mesma posio possuem links similares

Experimentos
n

Entrada:
n n

140 M URLs em 233.035 hosts com >100 URLs Informao de conectividade Determinar uma raking de 25.000 pares de host Testar cada par sugerido usando contedo

Para cada algoritmo de pr-filtragem


n n

Experimentos
n

Avaliao
n n

Preciso: quais pares sugeridos so mirrors Revocao relativa: quais pares so sugeridos considerando todos os mtodos foram encontrados por um mtodo em particular

Experimentos
n

Resultados
n

Melhores mtodos quanto a preciso so os baseados em IP e prefixo de URL Mtodos individuais so limitados quanto a revocao Mtodos combinados:
n n

Preciso: 0.57% Revocao: 0.86%

Artigos
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

Вам также может понравиться