Introduction to Information Retrieval
Introduction to
Information Retrieval
CS276
Information Retrieval and Web Search
Christopher Manning and Prabhakar Raghavan
Lecture 17: Crawling and web indexes
Introduction to Information Retrieval
Aula de Hoje
 Crawling.
 Connectivity servers.
Introduction to Information Retrieval
Sec. 20.2
Basic crawler operation
(operações básicas sobre rastreadores)
 Comece com sementes, as “URLs”
 Buscar e analisar:
 Extração do apontamento das URLs.
 Coloque as URLs obtidas em uma fila.
 Busque cada URL da fila, e repita a
busca.
Sec. 20.2
Introduction to Information Retrieval
Crawling picture
(Imagem Crawling)
URLs analisadas
e rastreadas
Seed
Pages
(Pags. Sementes)
Web
Fronteiras URLs
Área invisivel
Web
Introduction to Information Retrieval
Sec. 20.1.1
Imagens Simples – Complicações
 Impossível o rastreamento na web com uma máquina.
 Todas as etapas acima são distribuídas.
 Páginas Maliciosas.
 Páginas Spam.
 Armadilhas spider – inclusões geradas dinâmicamente.
 Mesmo páginas não maliciosas são desafios.
 Latência/largura-banda variam para servidores remotos.
 Estipulações webmaster.
 Qual a profundidade do rastreamento dentro da hierarquia URL
de um site ?
 Espelhos de sites e páginas duplicadas.
 Boas práticas – não pesquisar um servidor com muita
frequência.
Introduction to Information Retrieval
Sec. 20.1.1
O que qualquer indexador deve fazer
 Sendo Claro: Considerações claras implícitas
e explícitas a respeito:
 Apenas permitir o rastreamento da página.
 Consideração robots.txt (mais detalhes
posteriormente).
 Ser Robusto: ser imune a armadilha da
aranha e ao comportamento malicioso de
outros servidores.
Introduction to Information Retrieval
Sec. 20.1.1
O que qualquer indexador deve fazer
 Ser capaz de operação distríbuida: projetado para
rodar em máquinas distribuídas.
 Ser escalável: designado a aumentar a taxa de
rastreamento, adicionando mais máquinas.
 Desempenho/eficiência: permitir a utilização
todal de recursos de processamento e de rede.
Introduction to Information Retrieval
Sec. 20.1.1
O que qualquer indexador deve fazer
 Buscar primeiro páginas de maior
qualidade.
 Operação contínua: Continua pesquisando
novas cópias de uma página previamente
selecionada.
 Extensivo: Adaptar-se a protocolos com
novos formatos de dados.
Sec. 20.1.1
Introduction to Information Retrieval
Imagem de rastreamento atualizada
URLs rastreadas
e analisadas
Págs
sementes
Fronteira URL
Fio Crawling
Web invisivel
Introduction to Information Retrieval
Sec. 20.2
Fronteira URL
 Pode incluir várias páginas a partir do
mesmo host.
 Deve-se tentar obter todas ao mesmo
tempo.
 Deve-se tentar manter todos os fios/linha
de pesquisa ocupados.
Introduction to Information Retrieval
Sec. 20.2
Boas praticas explicitas e implicitas
 Explicit politeness: especificações do
webmaster em que partes do web site pode
ser feita o rastreamento.
 robots.txt.
 Implicit politeness: mesmo sem
especificação evitar acessar qualquer site
várias vezes.
Introduction to Information Retrieval
Sec. 20.2.1
Robots.txt
 Protocolo para dar acesso limitado a aranha
(“robots”) em um website, original em 1994.
 www.robotstxt.org/wc/norobots.html
 Website anuncia para a solicitação o que pode e
o que não pode ser recuperado.
 Para a URL, cria um arquivo URL/robots.txt.
 Este arquivo especifica as restrições de acesso.
Introduction to Information Retrieval
Sec. 20.2.1
Robots.txt exemplo
 Nenhum robô deve pesquisar uma URL começando
com "/yoursite/temp/", exceto o robo chamado
“searchengine":
User-agent: *
Disallow: /yoursite/temp/
User-agent: searchengine
Disallow:
Sec. 20.2.1
Introduction to Information Retrieval
Etapas de processamento do rastreamento
 Escolha a URL a partir da fronteira.
 Buscar o documento URL.
 Analisar a URL.
Which one?
 Resumo de links de outros docs(URLs).
 Verifique se a URL tem um conteúdo ja visitado
 Se não, adicione aos índices.
 Para cada extração URL:
E.g., only crawl .edu,
obey robots.txt, etc.
 Certifique-se de ter testado os filtros para URL.
 Verifique se já está na fronteira (eliminar URL duplicada).
Sec. 20.2.1
Introduction to Information Retrieval
Arquitetura básica de Rastreamento
DNS
WWW
Doc
FP’s
robots
filters
URL
set
Filtro
URL
Elimina
Dup
URL
Analisar
Pesquisa
Tem
conteudo?
Fronteira URL
Introduction to Information Retrieval
Sec. 20.2.2
DNS (Domain Name Server)
 Um serviço de pesquisa na internet.
 Com a URL, recuperar o indereço de IP.
 Serviço prestado por um conjunto de servidores
distribuídos – com isso aumenta a frequência da pesquisa
(no mesmo segundo).
 Implementações OS comuns de pesquisa DNS
bloqueio: apenas um pedido fica pendente por vez.
 Soluções:
 DNS caching.
 Solução DNS batch – encaminha todos os pedidos juntos.
Introduction to Information Retrieval
Sec. 20.2.1
Análise: Normalização URL
 Quando um documento obtido é analisado, alguns dos
links extraídos são URLs relativas.
 E.x., at http://en.wikipedia.org/wiki/Main_Page
Temos um link relativo para
/wiki/Wikipedia:General_disclaimer que o mesmo que
o URL absoluto.
http://en.wikipedia.org/wiki/Wikipedia:General_disclaimer
 Durante a análise, deve-se normalizar (expansão) como
URLs relativos.
Introduction to Information Retrieval
Sec. 20.2.1
Conteúdo da visita?
 A duplicação é difundida na Web.
 Se a página buscada já existe no índice,
não usar o processo.
 Isto é verificado através da zona de
impressão digital do documento.
Introduction to Information Retrieval
Sec. 20.2.1
Filtros e robots.txt
 Filtros – expressões regulares para URL’s
serem ou não rastreadas.
 Uma vez obtido o arquivo robots.txt que
é obtido a partir de um site, não precisa
buscar outras vezes.
 Se o fizer, tem a queima da largura da
banda, hits web server.
 Arquivos robots.txt escondidos.
Introduction to Information Retrieval
Sec. 20.2.1
Eliminação de URL Duplicada
 Para um rastreamento não contínuo (oneshot) verifique se a URL extraída não esta
na fronteira.
 Para um rastreamento contínuo – veja
detalhes de implementação para a
fronteira.
Introduction to Information Retrieval
Sec. 20.2.1
Distribuindo o Rastreador
 Executar múltiplos crawl threads, em diferentes
processos – em nós potencialmente diferentes
 Distribuição geográfica de nós.
 Partições em Hosts que estão sendo rastreados
em nós.
 Hash usado para partição.
 Como esses nós se comunicam?
Sec. 20.2.1
Introduction to Information Retrieval
Comunicação entre nós
 A saída do filtro URL em cada nó é enviada para a URL
Duplicate Eliminator em todos os nós.
DNS
WWW
Doc
FP’s
Análise
Busca
robots
filters
Vista
com
conteúdo?
Fronteira URL
Para
Outros
Host
Host
Fitro splitter
URL
De
outros
hosts
URL
set
Elim
URL
Dup
Introduction to Information Retrieval
Sec. 20.2.3
Fronteira URL : duas razões principais
 Politeness: não atingiu um servidor web com
frequência.
 Freshness: rastrear algumas páginas com mais
frequência que outras.
 Ex., páginas (busca a novos sites) cujo conteúdo
muda frequentemente.
Esses objetivos podem ser conflitantes.
(Ex., simples falha na fila de prioridades– muitos
links conduzem para suas próprias páginas,
causando uma explosão de acessos.).
Introduction to Information Retrieval
Sec. 20.2.3
Clareza – desafios
 Mesmo se restringir apenas um segmento
para buscar a partir de um host, ele pode
ser acessado repetidamente.
 Heurística Comun: insere um espaço de
tempo entre os pedidos sucessivos ao
hust>> tempo para buscar as hospedagens
mais recentes.
Sec. 20.2.3
Introduction to Information Retrieval
Fronteira URL : Mercator scheme
URLs
Prioridade
K filas de frente
Seletor de fila
Tendenciosa rota
De frente para traz da fila
B filas de volta
Únicas em cada host
Voltar ao seletor de fila
Requisitando Crawl thread URL
Introduction to Information Retrieval
Sec. 20.2.3
Mercator URL frontier




Flui a partir do topo para a fronteira das URLs.
Filas de frente gerenciam a priorização.
Filas de traz aplica clareza.
Cada fila é FIFO.
Sec. 20.2.3
Introduction to Information Retrieval
Filas da Frente
Priorização
1
K
Seletor de fila tendenciosa,
de frente para traz da rota da fila
Introduction to Information Retrieval
Sec. 20.2.3
Filas da Frente
 Prioritizer atribui a URL uma prioriade inteira
entre 1 e K.
 Acrescenta a URL para a fila correspondente.
 Heuristics para a atribuição de prioridade.
 Taxa de atualização em amostras colhidas em
rastreamentos anteriores.
 Aplicação específica (e.x., “rastrear sites de
notícias com maior frequência”).
Introduction to Information Retrieval
Sec. 20.2.3
Seleção tendenciosa da fila de frente
 Quando uma fila de traz solicita uma URL (em
uma sequência a ser descrita): busca uma da
frente da fila ao invés de buscar uma URL.
 Esta escolha pode ser tedenciosa para as filas de
maior prioridade ou alguma variável mais
sofisticada.
 Pode ser randomizada.
Introduction to Information Retrieval
Sec. 20.2.3
Voltar a Fila
Fila da frente é tendenciosa
Volta seletor de rota da fila
1
B
Volta selecionar da fila
Pilha
Sec. 20.2.3
Introduction to Information Retrieval
Back queue invariants
 Cada fila de traz não é mantida vazia, enquanto
o rastramento é feito.
 Cada fila de traz só contem URL´s a partir de um
único host.
 Manter uma tabela de host para voltar a fila.
Host name
Back queue
…
3
1
B
Introduction to Information Retrieval
Sec. 20.2.3
Voltar a fila da Pilha
 Uma entrada para cada fila de volta.
 A entrada para o primeiro tempo te em que o
host da fila de traz pode ser acessado
novamente.
 Nesse primeiro tempo para determinar a partir
de:
 Último acesso ao host.
 Em qualquer tempo, escolhemos o buffer
heuristic.
Introduction to Information Retrieval
Sec. 20.2.3
Voltar a Fila de Processamento
 Um rastreador usa um fio para procurar uma URL para
rastrear:
 Extrai do início da pilha.
 Obtem a URL na cabeça da fila q de traz correspondente
(pesquisa sobre a tabela).
 Verifica se a fila “q” agora esta fazia – se afirmativo, puxa
uma “v” URL das filas da frente.
 Se ja existir uma fila de volta para o host v’s, acrescentar
v para q e buscar outra URL da frente da fila, e repetir.
 Se não adicionar v a q.
 Quando q não estiver vazio, criar entrada na pilha para ele.
Introduction to Information Retrieval
Sec. 20.2.3
Number of back queues B
 Manter todos os tópicos respeitando a clareza.
 Mercator recomendação: tres vezes mais como
filas de traz como rastreador de tópicos.
(three times as many back queues as crawler threads)
Conectividade de Servidores
Introduction to Information Retrieval
Sec. 20.4
Conectividade de Servidores
 Suporte para consultas gráficas rápidas na Web.
 Quais URLs apontam para uma determinada URL?
 Qual o ponto da URL?
Mapeando armazenamentos de memória.
 URL para outlinks, URL para inlinks.
 Aplicações.
 Controle de Rastreamento.
 Análise Gráfica da Web.
 Conectividade, otimização de rastreamento.
 Análise do Link.
Introduction to Information Retrieval
Sec. 20.4
Campeão de Trabalhos Publicados
 Boldi and Vigna.
 http://www2004.org/proceedings/docs/1p595.pdf
 Webgraph – marcar algorítimos e
implementações java.
 Fundamental goal – manter listas do nó de
memória.
 Para isso, comprimindo as listas adjacentes é o
caminho crítico.
Introduction to Information Retrieval
Sec. 20.4
Listas Adjacentes
 O conjunto de vizinhos de um nó.
 Suponha cada URL representada por um número
inteiro.
 Ex., para uma pagina web de 4 billion, precisa de
32 bits por nó.
 Simplesmente, isso demanda 64 bits para
representar cada hyperlink.
Introduction to Information Retrieval
Sec. 20.4
Compressão da Lista Adjacente
 Propriedades exploradas na comprensão:
 Similaridade (entre listas).
 Localidade (vários links por página vá para
“próxima” página).
 Usar os espaços na codificação das listas
ordenadas.
 Distribuição dos valores nos espaços.
Sec. 20.4
Introduction to Information Retrieval
Armazenamento
 Boldi/Vigna buscar descer a média de ~3
bits/link.
 (URL para URL da borda).
 Como?
Why is this remarkable?
Introduction to Information Retrieval
Sec. 20.4
Principais idéias de Boldi/Vigna
 Considere lexicographicamente ordenada a lista de
URLs, ex.:






www.stanford.edu/alchemy
www.stanford.edu/biology
www.stanford.edu/biology/plant
www.stanford.edu/biology/plant/copyright
www.stanford.edu/biology/plant/people
www.stanford.edu/chemistry
Introduction to Information Retrieval
Boldi/Vigna
Sec. 20.4
Porque
7?
 Cada uma dessas listas tem uma lista adjacente.
 Principal idéia: devido aos modelos, a lista de
adjacentes de um nó é similar a uma das 7 URLs
anteriores lexicographicamente ordenadas.
 Lista expressa adjacente para um desses termos.
 E.x., considere esta lista de adjacentes:




1, 2, 4, 8, 16, 32, 64
1, 4, 9, 16, 25, 36, 49, 64
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
1, 4, 8, 16, 25, 36, 49, 64
Codificar como (-2), remove 9, soma 8
Introduction to Information Retrieval
Sec. 20.4
Codificando nas lacunas
 Dada uma lista ordenada de inteiros x,
y, z, …, representar por x, y-x, z-y, …
 Compactar cada inteiro utilizando um
código.
 código  - numero de bits = 1 + 2 lg x
 d código : …
 Informação teórica vinculada: 1 + lg x bits
 z código: Funciona bem para inteiros a
partir de uma lei de força Boldi Vigna DCC
2004
Introduction to Information Retrieval
Sec. 20.4
As principais vantagens de BV
 Depende apenas de uma ordenação local regular.
 Ordenação Lexicographica funciona bem para a Web.
 Consultas nas adjacencias podem responder
muito bem.
 Para buscar na vizinhança, rastrear a cadeia de
protótipos.
 Esta sequência é geralmente curta (a semelhança é
principalmente intra-hospedeiro).
 Pode também limitar o comprimento da cadeia
durante a codificação.
 Um algorítimo de passagem é fácil de aplicar.
Introduction to Information Retrieval
Recursos
 IIR Chapter 20
 Mercator: A scalable, extensible web crawler (Heydon et al.
1999).
 A standard for robot exclusion.
 The WebGraph framework I: Compression techniques (Boldi
et al. 2004).
Download

lecture17-crawling