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/

Introdução à Informática

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

ANÁLISE E PROJETO DE BANCO DE DADOS

Protocolo HTTP. Professor Leonardo Larback

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

Desenvolvimento de Aplicações Distribuídas

Replicação em sistemas web

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

Informática I. Aula 2. Ementa

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

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

Introdução à Computação

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

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

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

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

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

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

Replicação em sistemas web

Recuperação de informação na WEB

Aplicações Gerais de Informá5ca

Redes de Computadores

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

Bruno Antunes da Silva UFSCar - Sorocaba

Concurso PM-PE Prova de Informática 2014

Manual de Instalação NF-e Captura Express

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

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

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

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

Quando Distribuir é bom

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

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

Rede de computadores Servidor. Professor Carlos Muniz

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

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

Arquivo da Web Portuguesa

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

Introdução a Sistemas Distribuídos

Notas da Aula 7 - Fundamentos de Sistemas Operacionais

Internet Explorer 8.0 Navegador (Browser)

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

Bem-vindo ao curso delta Efetuar picking e embalar para o SAP Business One, versão 9.1. Você deve ter bons conhecimentos do processo de picking e

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte

Arquiteturas. capítulo

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

INTRODUÇÃO À INTERNET E À WORLD WIDE WEB

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

Teoria dos Grafos Aula 8

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

CCT0298 ANALISE DE REDES Aula : Trafego HTTP

INTRODUÇÃO A PROGRAMAÇÃO PARA WEB

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

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

Matemática Discreta 12

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

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

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

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

REDES DE COMPUTADORES

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

Aula 2. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Distribuídos

INTERNET P R O F. M A R C O A N T Ô N I O PROF. MARCO ANTÔNIO

Redes de Computadores e Internet

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

Capítulo 11 Sistemas de Arquivos

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

Por exemplo, no endereço temos:

Como criar utilizadores

Características de Sistemas Distribuídos

Protocolo HTTP. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 22

Características de Sistemas Distribuídos

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

Escola Politécnica da Universidade de São Paulo

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

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos

Escalonamento de processos

Rede EtherTalk Macintosh (MacOS 8.x/9.x/X, versão 10.1)

Desafios para os profissionais da informação. Alexandra Lourenço

Programação com Sockets

WWW = WORLD WIDE WEB

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

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

Vamos fazer um pequeno experimento

Antispam corporativo e Gateway

Estruturas de Dados Algoritmos de Ordenação

INTRODUÇÃO A SISTEMAS OPERACIONAIS

SI06 DIMENSÃO TECNOLÓGICA I

Sumário 1. Perfil Fórum Tarefa Wiki Glossário Mensagem Privada Notas...

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

Política de Segurança de Informações

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

É 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 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......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 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 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 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

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 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 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 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 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 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 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 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, 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 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 Na heap: Uma entrada para cada fila traseira 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