Crawling. Marcelo K. Albertini. Faculdade de Computação, Universidade Federal de Uberlândia. Crawling 1 / 26

Documentos relacionados
Crawling. Marcelo K. Albertini. Faculdade de Computação, Universidade Federal de Uberlândia. Crawling 1 / 26

Conteúdo 1 Um crawler simples 2 Crawling 2 / 28

Redes P2P. Apresentadora: Luciana Pereira Oliveira. Duração: 40 minutos Data: 20/07/

Protocolo HTTP. Professor Leonardo Larback

ANÁLISE E PROJETO DE BANCO DE DADOS

Introdução à Informática

Desenvolvimento de Aplicações Distribuídas

Arquivo.pt. Blogs que ficam para a História Daniel Gomes

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014

Como publicar conteúdos na Web preserváveis para o futuro

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Introdução à Computação

Para onde vamos. Recuperação de Informação na WEB. Medidas de Avaliação. Recuperação de informação na WEB

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

indexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016

Informática I. Aula 2. Ementa

Replicação em sistemas web

Manual de instalação, configuração e utilização do Enviador XML

INFORMÁTICA. Indique a opção que contenha todas as afirmações verdadeiras. a) I e II b) II e III c) III e IV d) I e III e) II e IV

Quando Distribuir é bom

Arquivo da Web Portuguesa

Recuperação de informação na WEB

Gerência de Redes de Computadores RMON. Prof. Alex Furtunato

Estruturas de Dados Algoritmos de Ordenação

Concurso PM-PE Prova de Informática 2014

Aplicações Gerais de Informá5ca

Redes de Computadores

Construção de Sites. Introdução ao Universo Web. Prof. Nícolas Trigo

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Matemática Discreta 12

Rede de computadores Servidor. Professor Carlos Muniz

Joomla na otimização de sites para buscadores de Internet SEO. Marcio Junior Vieira

Bruno Antunes da Silva UFSCar - Sorocaba

Manual de Instalação NF-e Captura Express

Estruturas básicas de redes Internet Padronização e Protocolos

Teoria dos Grafos Aula 8

Arquiteturas. capítulo

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Internet Explorer 8.0 Navegador (Browser)

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Sistemas de Arquivos. Diretórios Gerenciamento de Espaço em Disco

A CASA DO SIMULADO DESAFIO QUESTÕES MINISSIMULADO 128/360

Questionário de revisão para AV1 de Informática Aplicada Valor 1,0 ponto - Deverá ser entregue no dia da prova.

Firewall - Inspeção com estado. (Stateful Inspection)

Replicação em sistemas web

Universidade de São Paulo. Escola Superior de Agricultura Luiz de Queiroz. Seção Técnica de Informática. Manual do Usuário. Curriculum Vitae ESALQ

Laboratório - Uso do Wireshark para examinar uma captura UDP DNS

Sistemas Distribuídos Capítulo 5 - Aula 8

Pesquisa em Memória Secundária. Prof. Jonas Potros

Identificação e Caracterização de Comportamentos Suspeitos Através da Análise do Tráfego DNS

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

CCT0298 ANALISE DE REDES Aula : Trafego HTTP

A quantidade de informação existente no mundo é grande e cresce a uma taxa exponencial a cada ano. Aplicações como engenhos de busca web, por

Criptografia Simétrica e Assimétrica, Hash, e Assinatura Digital

CONCEITOS BÁSICOS DE INTERNET. Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA

INTRODUÇÃO À INTERNET E À WORLD WIDE WEB

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

REDES DE COMPUTADORES

Infra Estrutura Hardware e Software

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

Projeto de um buscador

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas

Como publicar informação preservável para o futuro

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco

NFS. Network File System. Network File System

MOODLE MANUAL DE UTILIZAÇÃO - ALUNO. Elaborado por: Tecnologia da Informação 2019/1 Versão 1.0

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Cross-Site Scripting. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

Estatística e Modelos Probabilísticos - COE241

Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri

MANUAL DE UTILIZAÇÃO DO SISTEMA LUX NF-E V

Estatística e Modelos Probabilísticos - COE241

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Sistemas Distribuídos

Gerência do Sistema de Arquivos. Adão de Melo Neto

SENAI ESCOLA. Gerenciador de conteúdo SENAI escolas. Documentação de especificação de gerenciamento de conteúdo para escolas SENAI.

INTRODUÇÃO A SISTEMAS OPERACIONAIS

Acesso do bloco HTTPS para uma site específico no Roteadores RV016, RV042, RV042G e RV082 VPN

4 o Fórum Brasileiro de CSIRTs 17 e 18 de setembro de 2015 São Paulo, SP

Aula 2. Prof: Carlos Eduardo de Carvalho Dantas

Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Arquitetura de Rede. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina: Redes de Computadores I

Estatística e Modelos Probabilísticos - COE241

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Hashing: conceitos. Hashing

INTERNET. Definição. Rede internacional de computadores que permite comunicação e transferência de dados entre outros serviços.

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA

SIM 15/16 T7 Processamento de Sinal e Imagem Médica. Miguel Tavares Coimbra

Um Repositório Chave-Valor com Garantia de Localidade de Dados. Patrick A. Bungama Wendel M. de Oliveira Flávio R. C. Sousa Carmem S.

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Redes de Computadores e Internet

Introdução a Sistemas Distribuídos

O que é um sistema distribuído?

Fundamentos de Sistemas Operacionais

Transcrição:

Organização e Recuperação de Informação: Crawling Marcelo K. Albertini Faculdade de Computação, Universidade Federal de Uberlândia Crawling 1 / 26

Contedo 1 Um crawler simples 2 Crawling 2 / 26

É difícil projetar um crawler? Buscadores devem capturar e acumular documentos da web Crawling 3 / 26

É difícil projetar um crawler? Buscadores devem capturar e acumular documentos da web Pegar conteúdo de docs é mais fácil para outros sistemas de ORI Crawling 3 / 26

É difícil projetar um crawler? Buscadores devem capturar e acumular documentos da web Pegar conteúdo de docs é mais fácil para outros sistemas de ORI E.g., indexar arquivos no seu disco rígido: somente fazer uma recursão nos diretórios no computador Crawling 3 / 26

É difícil projetar um crawler? Buscadores devem capturar e acumular documentos da web Pegar conteúdo de docs é mais fácil para outros sistemas de ORI E.g., indexar arquivos no seu disco rígido: somente fazer uma recursão nos diretórios no computador Para ORI na web, pegar conteúdo de docs leva mais tempo... Crawling 3 / 26

É difícil projetar um crawler? Buscadores devem capturar e acumular documentos da web Pegar conteúdo de docs é mais fácil para outros sistemas de ORI E.g., indexar arquivos no seu disco rígido: somente fazer uma recursão nos diretórios no computador Para ORI na web, pegar conteúdo de docs leva mais tempo......devido à latência Crawling 3 / 26

É difícil projetar um crawler? Buscadores devem capturar e acumular documentos da web Pegar conteúdo de docs é mais fácil para outros sistemas de ORI E.g., indexar arquivos no seu disco rígido: somente fazer uma recursão nos diretórios no computador Para ORI na web, pegar conteúdo de docs leva mais tempo......devido à latência Crawler (ou robô de indexação ou rastreador web) é o programa que captura documentos para um buscador indexar Crawling 3 / 26

É difícil projetar um crawler? Buscadores devem capturar e acumular documentos da web Pegar conteúdo de docs é mais fácil para outros sistemas de ORI E.g., indexar arquivos no seu disco rígido: somente fazer uma recursão nos diretórios no computador Para ORI na web, pegar conteúdo de docs leva mais tempo......devido à latência Crawler (ou robô de indexação ou rastreador web) é o programa que captura documentos para um buscador indexar É difícil fazer um? Crawling 3 / 26

Operação do crawler OperBasic URL = Uniform Resource Locator endereço da página Inicializar fila com URLs de páginas iniciais Crawling 4 / 26

Operação do crawler OperBasic URL = Uniform Resource Locator endereço da página Inicializar fila com URLs de páginas iniciais Repetir Crawling 4 / 26

Operação do crawler OperBasic URL = Uniform Resource Locator endereço da página Inicializar fila com URLs de páginas iniciais Repetir Pegar URL da fila Crawling 4 / 26

Operação do crawler OperBasic URL = Uniform Resource Locator endereço da página Inicializar fila com URLs de páginas iniciais Repetir Pegar URL da fila Capturar e processar página Crawling 4 / 26

Operação do crawler OperBasic URL = Uniform Resource Locator endereço da página Inicializar fila com URLs de páginas iniciais Repetir Pegar URL da fila Capturar e processar página Extrair URLs da página Crawling 4 / 26

Operação do crawler OperBasic URL = Uniform Resource Locator endereço da página Inicializar fila com URLs de páginas iniciais Repetir Pegar URL da fila Capturar e processar página Extrair URLs da página Adicionar URLs para fila Crawling 4 / 26

Operação do crawler OperBasic URL = Uniform Resource Locator endereço da página Inicializar fila com URLs de páginas iniciais Repetir Pegar URL da fila Capturar e processar página Extrair URLs da página Adicionar URLs para fila Premissa fundamental: a web é bem conecada Crawling 4 / 26

Exercício: qual é o problema deste crawler? filaurls := (urls de inicializaç~ao bem escolhidas) enquanto filaurls n~ao está vazia: url := filaurls.pegarultimoeremover() pagina := url.capturar() urlscapturados.adicionar(url) novosurls := pagina.extrairurls() para cada url em novosurls: se url n~ao está em urlscapturados e nem em filaurls: filaurls.adicionar(url) fim para adicionarparaindiceinvertido(pagina) fim enquanto Crawling 5 / 26

Quais são os problemas desse crawler simples Para grande quantidade de docs é necessário distribuir. Não podemos indexar tudo: necessitamos amostrar. Duplicatas: precisamos usar detecção de duplicatas Spam e armadilhas de aranhas: usar detecção de spam Cortesia: necessário esparsar requisições para evitar sobrecarregar um site Recência: necessário capturar periodicamente Devido ao tamanho da web, podemos fazer re-capturas apenas para um pequeno subconjunto de páginas Outra vez, problema de amostragem ou prioritização Crawling 6 / 26

Magnitude do problema de crawling Para capturar 20,000,000,000 páginas em um mês... Crawling 7 / 26

Magnitude do problema de crawling Para capturar 20,000,000,000 páginas em um mês......precisamos obter quase 8000 páginas por segundo Crawling 7 / 26

Magnitude do problema de crawling Para capturar 20,000,000,000 páginas em um mês......precisamos obter quase 8000 páginas por segundo Na verdade: muito mais pois muitas da páginas serão duplicatas, indisponíveis, spam etc. Crawling 7 / 26

O que um crawler deve fazer? Cortesia Crawling 8 / 26

O que um crawler deve fazer? Cortesia Não sobrecarregar um site Crawling 8 / 26

O que um crawler deve fazer? Cortesia Não sobrecarregar um site Pegar páginas apenas autorizadas: robots.txt Crawling 8 / 26

O que um crawler deve fazer? Cortesia Não sobrecarregar um site Pegar páginas apenas autorizadas: robots.txt Protocolo de exclus~ao de rob^os Robustez Crawling 8 / 26

O que um crawler deve fazer? Cortesia Não sobrecarregar um site Pegar páginas apenas autorizadas: robots.txt Protocolo de exclus~ao de rob^os Sitemaps: Protocolo de inclus~ao de rob^os Robustez Resistência a armadilhas, duplicatas, páginas e sites muito grandes, páginas dinâmicas etc Crawling 8 / 26

Robots.txt Protocolo para robots acessar um website Crawling 9 / 26

Robots.txt Protocolo para robots acessar um website Exemplos: Crawling 9 / 26

Robots.txt Protocolo para robots acessar um website Exemplos: User-agent: * Disallow: /yoursite/temp/ Crawling 9 / 26

Robots.txt Protocolo para robots acessar um website Exemplos: User-agent: * Disallow: /yoursite/temp/ User-agent: searchengine Disallow: / Crawling 9 / 26

Robots.txt Protocolo para robots acessar um website Exemplos: User-agent: * Disallow: /yoursite/temp/ User-agent: searchengine Disallow: / Importante: armazenar o arquivo robots.txt de cada site que estamos acessando Crawling 9 / 26

Exemplo de robots.txt (nih.gov) User-agent: PicoSearch/1.0 Disallow: /news/information/knight/ Disallow: /nidcd/... Disallow: /news/research_matters/secure/ Disallow: /od/ocpl/wag/ User-agent: * Disallow: /news/information/knight/ Disallow: /nidcd/... Disallow: /news/research_matters/secure/ Disallow: /od/ocpl/wag/ Disallow: /ddir/ Disallow: /sdminutes/ Crawling 10 / 26

O que todo crawler deve fazer Capacidade de operação distribuída Crawling 11 / 26

O que todo crawler deve fazer Capacidade de operação distribuída Ser escalável: capacidade de aumentar taxa de captura por meio da adição de mais máquinas Crawling 11 / 26

O que todo crawler deve fazer Capacidade de operação distribuída Ser escalável: capacidade de aumentar taxa de captura por meio da adição de mais máquinas Capturar páginas de qualidade mais alta primeiro Crawling 11 / 26

O que todo crawler deve fazer Capacidade de operação distribuída Ser escalável: capacidade de aumentar taxa de captura por meio da adição de mais máquinas Capturar páginas de qualidade mais alta primeiro Operação contínua: obter versões recentes das páginas capturadas anteriormente Crawling 11 / 26

Contedo 1 Um crawler simples 2 Crawling 12 / 26

Fronteira URL URLs não vistos Crawling 13 / 26

Fronteira URL Fronteira URL: encontrado, mas não capturado URLs não vistos Crawling 13 / 26

Fronteira URL URLs capturados e processados Fronteira URL: encontrado, mas não capturado URLs não vistos Crawling 13 / 26

Fronteira URL Fronteira URL é estrutura de dados que guarda e gerencia URLs que vimos, mas que não foram capturados ainda Crawling 14 / 26

Fronteira URL Fronteira URL é estrutura de dados que guarda e gerencia URLs que vimos, mas que não foram capturados ainda Pode incluir múltiplas páginas do mesmo servidor Crawling 14 / 26

Fronteira URL Fronteira URL é estrutura de dados que guarda e gerencia URLs que vimos, mas que não foram capturados ainda Pode incluir múltiplas páginas do mesmo servidor Deve evitar captura de todas ao mesmo tempo Crawling 14 / 26

Fronteira URL Fronteira URL é estrutura de dados que guarda e gerencia URLs que vimos, mas que não foram capturados ainda Pode incluir múltiplas páginas do mesmo servidor Deve evitar captura de todas ao mesmo tempo Deve manter processos de crawling ocupados Crawling 14 / 26

Passos em crawling Escolher uma URL da fronteira Crawling 15 / 26

Passos em crawling Escolher uma URL da fronteira Capturar o documento na URL Crawling 15 / 26

Passos em crawling Escolher uma URL da fronteira Capturar o documento na URL Verificar se documento já é conhecido (se sim, pular os passos seguintes) Crawling 15 / 26

Passos em crawling Escolher uma URL da fronteira Capturar o documento na URL Verificar se documento já é conhecido (se sim, pular os passos seguintes) Indexar o documento Crawling 15 / 26

Passos em crawling Escolher uma URL da fronteira Capturar o documento na URL Verificar se documento já é conhecido (se sim, pular os passos seguintes) Indexar o documento Extrair URLs do documento Crawling 15 / 26

Passos em crawling Escolher uma URL da fronteira Capturar o documento na URL Verificar se documento já é conhecido (se sim, pular os passos seguintes) Indexar o documento Extrair URLs do documento Para cada URL extraída: Crawling 15 / 26

Passos em crawling Escolher uma URL da fronteira Capturar o documento na URL Verificar se documento já é conhecido (se sim, pular os passos seguintes) Indexar o documento Extrair URLs do documento Para cada URL extraída: Falha a certos testes (e.g., é spam)? Sim: ignorar Crawling 15 / 26

Passos em crawling Escolher uma URL da fronteira Capturar o documento na URL Verificar se documento já é conhecido (se sim, pular os passos seguintes) Indexar o documento Extrair URLs do documento Para cada URL extraída: Falha a certos testes (e.g., é spam)? Sim: ignorar Já na fronteira?: pular Crawling 15 / 26

Arquitetura básica www DNS captura processar docs obtidos modelos robots.txt conteúdo visto? filtro URL conjunto de URLs duplicata URL eliminar fronteira URL Crawling 16 / 26

Normalização de URLs Alguns URLs extraídos de documentos são relativos Exemplo http://mit.edu, podemos achar aboutsite.html O que é o mesmo que: http://mit.edu/aboutsite.html Durante processamento, devemos normalizar todas as URLs relativas Crawling 17 / 26

Conteúdo visto Para cada página obtida: verificar se conteúdo já está no índice Usar impressões digitais do documento com função hash ou composições de palavras Pular documentos cujo conteúdo já foi indexado Crawling 18 / 26

Distribuindo o crawler Rodar múltiplos processos de crawling em computadores distintos Crawling 19 / 26

Distribuindo o crawler Rodar múltiplos processos de crawling em computadores distintos Normalmente em computadores geograficamente afastados Crawling 19 / 26

Distribuindo o crawler Rodar múltiplos processos de crawling em computadores distintos Normalmente em computadores geograficamente afastados Particionar servidores a serem rastreados nesses computadores Crawling 19 / 26

Crawler distribuído www DNS captura docs pega obtidos URL envia para outros nós processar conteúdo filtro divisor eliminar visto? de URL de URL servidores duplicado fronteira URL de outros nós Crawling 20 / 26

Fronteira URL: duas considerações principais Cortesia: não sobrecarregar servidor Crawling 21 / 26

Fronteira URL: duas considerações principais Cortesia: não sobrecarregar servidor E.g., inserir um intervalor de tempo entre requisições sucessivas para um mesmo servidor Crawling 21 / 26

Fronteira URL: duas considerações principais Cortesia: não sobrecarregar servidor E.g., inserir um intervalor de tempo entre requisições sucessivas para um mesmo servidor Recência: capturar algumas páginas (e.g., sites de notícias) com maior frequência que outros Crawling 21 / 26

Fronteira URL: duas considerações principais Cortesia: não sobrecarregar servidor E.g., inserir um intervalor de tempo entre requisições sucessivas para um mesmo servidor Recência: capturar algumas páginas (e.g., sites de notícias) com maior frequência que outros Problema complexo: não é possível usar fila de prioridade simples Crawling 21 / 26

Fronteira URL de Mercator prioritizador 1 F F filas de frente escolha fila de frente & roteador de fila de trás 1 3 B B filas traseiras : servidor único em cada 3 3 escolha fila de trás heap Crawling 22 / 26

Fronteira URL de Mercator prioritizador 1 F F filas de frente escolha fila de frente & roteador de fila de trás 1 3 B B filas traseiras : servidor único em cada Fluxo de URLs de entrada do topo para a fronteira 3 3 escolha fila de trás heap Crawling 22 / 26

Fronteira URL de Mercator prioritizador 1 F F filas de frente escolha fila de frente & roteador de fila de trás 1 3 B B filas traseiras : servidor único em cada Fluxo de URLs de entrada do topo para a fronteira Filas de frente gerenciam prioridades 3 3 escolha fila de trás heap Crawling 22 / 26

Fronteira URL de Mercator prioritizador 1 F F filas de frente escolha fila de frente & roteador de fila de trás 1 3 B B filas traseiras : servidor único em cada Fluxo de URLs de entrada do topo para a fronteira Filas de frente gerenciam prioridades Filas traseiras garantem cortesia 3 3 escolha fila de trás heap Crawling 22 / 26

Fronteira URL de Mercator prioritizador 1 F F filas de frente escolha fila de frente & roteador de fila de trás 1 3 B B filas traseiras : servidor único em cada Fluxo de URLs de entrada do topo para a fronteira Filas de frente gerenciam prioridades Filas traseiras garantem cortesia 3 3 escolha fila de trás heap Crawling 22 / 26

Fronteira URL de Mercator: filas de frente prioritizador 1 F F filas de frente seletor de fila de frente& roteador de fila de trás Crawling 23 / 26

Fronteira URL de Mercator: filas de frente prioritizador 1 F F filas de frente seletor de fila de frente& roteador de fila de trás Prioritizador atribui para URL um número inteiro de prioridade entre 1 e F. Então coloca URL à fila correspondente Crawling 23 / 26

Fronteira URL de Mercator: filas de frente prioritizador 1 F F filas de frente seletor de fila de frente& roteador de fila de trás Prioritizador atribui para URL um número inteiro de prioridade entre 1 e F. Então coloca URL à fila correspondente Heurística para atribuir prioridade: taxa de recência, PageRank etc Crawling 23 / 26

Fronteira URL de Mercator: filas de frente prioritizador 1 F F filas de frente seletor de fila de frente& roteador de fila de trás Prioritizador atribui para URL um número inteiro de prioridade entre 1 e F. Então coloca URL à fila correspondente Heurística para atribuir prioridade: taxa de recência, PageRank etc Crawling 23 / 26

Fronteira URL de Mercator: filas de frente prioritizador 1 F F filas de frente seletor de fila de frente& roteador de fila de trás Seleção das filas de frente é iniciada por filas traseiras Escolher uma fila de frente a partir do qual seleciona-se próximo URL: rodízio, aleatoriamente, ou variante mais sofisticada Mas com uma tendência a favor de filas de frente de alta prioridade Crawling 23 / 26

Fronteira de URL de Mercator: filas traseiras seletor de fila de frente & roteador de fila de trás 3 1 B B filas traseiras Servidor único em cada 3 3 seletor de fila de trás heap Crawling 24 / 26

Fronteira de URL de Mercator: filas traseiras seletor de fila de frente & roteador de fila de trás 3 1 B B filas traseiras Servidor único em cada 3 3 seletor de fila de trás heap Invariante 1. Cada fila traseira é mantida com páginas enquanto a captura está em progresso Invariante 2. Cada fila traseira somente contém URLs de um único servidor Mantém uma tabela de servidores para filas traseiras Crawling 24 / 26

Fronteira de URL de Mercator: filas traseiras seletor de fila de frente & roteador de fila de trás 3 1 B B filas traseiras Servidor único em cada 3 3 seletor de fila de trás heap Na heap: Uma entrada para cada fila traseira A entrada é o tempo mais próximo t e em que o servidor correspondente para a fila traseira ser atingida novamente O tempo mais próximo t e é determinado por (i) último acesso para aquele servidor (ii) heurística do intervalo de tempo Crawling 24 / 26

Fronteira de URL de Mercator: filas traseiras seletor de fila de frente & roteador de fila de trás 3 1 B B filas traseiras Servidor único em cada 3 3 seletor de fila de trás heap Como o capturador interage com filas traseiras: Repetir (i) extrair raiz atual q da heap (q é uma fila traseira) e (ii) capturar URL u na cabeça de q......até esvaziarmos q (i.e.: u foi o último URL em q) Crawling 24 / 26

Fronteira de URL de Mercator: filas traseiras seletor de fila de frente & roteador de fila de trás 3 1 B B filas traseiras Servidor único em cada 3 3 seletor de fila de trás heap Quando esvaziarmos uma fila traseira q: Repetir (i) tirar URLs u das filas da frente e (ii) adicionar u para suas correspontes filas traseiras......até pegarmos um u cujo servidor não temos uma fila traseira Então colocamos u em q criamos um entrada da heap para ele Crawling 24 / 26

Fronteira URL de Mercator prioritizador 1 F F filas de frente escolha fila de frente & roteador de fila de trás 1 3 B B filas traseiras : servidor único em cada Fluxo de URLs de entrada do topo para a fronteira Filas de frente gerenciam prioridades Filas traseiras garantem cortesia 3 3 escolha fila de trás heap Crawling 25 / 26

Armadilha para aranha Servidor malicioso que gera uma sequência infinita de páginas linkadas Armadilhas sofisticadas geram páginas que não são facilmente identificadas como dinâmicas Crawling 26 / 26