INF 2914 Web Search Lecture 2: Crawlers. Today’s lecture Crawling.

Slides:



Advertisements
Apresentações semelhantes
Presenter’s Notes Some Background on the Barber Paradox
Advertisements

Multiplicação das Células
As Horas Que horas são?.
Computação de Alto Desempenho
DIRETORIA ACADÊMICA NÚCLEO DE CIÊNCIAS HUMANAS E ENGENHARIAS DISCIPLINA: INGLÊS FUNDAMENTAL - NOITE PROFESSOR: JOSÉ GERMANO DOS SANTOS PERÍODO LETIVO
Uniform Resource Identifier (URI). Uniform Resource Identifiers Uniform Resource Identifiers (URI) ou Identificador de Recursos Uniforme provê um meio.
Protocolo HTTP.
Fundamentos de Eletrônica Digital
“Cenários para a economia em 2014”
OER LIFE CYCLE Andrew Moore and Tessa Welch.
Avaliação Constituição dos grupos de trabalho:
Wh- Questions e Short Answers
Objetivo: Como usar vídeos em suas aulas.
Introdução à Criptografia Moderna – 2ª Lista de Exercícios
1 ENUM Pedro Veiga FCCN 24 de Junho de Índice O que é o DNS DNS em Portugal DNS a nível internacional Do IAHC ao ICANN O WIPO DNS em Portugal.
10/ Daily Goal Sheet & Daily Checklist for Teachers Folha do Objetivo Diário & Checklist diário para os Professores By Por David Batty PSNC #7.
Where are the most populated places in Spain? Can you suggest reasons for this? Look at the atlas pages what is the difference in the climate.
AdsRcatyb It's sad to think we're not gonna make it É triste pensar que não vamos conseguir It's sad to think we're not gonna make it É triste pensar.
1 st HALF OF 2005 RESULTS. Grandes marcas, preços baixos, todos os dias. Bovespa: LAME3 (CS) LAME4 (PS) 2 Operating Highlights Expansion of Store Network.
INFORMATION SECURITY IN ORGANIZATIONS Ana Helena da Silva, MCI12017 Cristiana Coelho, MCI12013.
Biologia Molecular e Celular de Nematóides BMP fone: segundas e sextas – 9:00hs
fábrica de software conceitos, idéias e ilusões
Simplificação dos Modelos i* Trabalho de Fernanda Alencar Clarissa César Borba.
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 5: Trabalhando em colaboração Tiago Marçal Ricotta Gerente de Projetos –
Estrutura da formação 3 aulas teórico-práticas + 1 aula de campo Aulas teórico-práticas + 1 aula de campo 3 aulas teórico-práticas (9h) - Tiago Garcia.
Probabilidade e Estatística para Avaliação de Desempenho
FELIZ DIA DO AMIGO!!! PS: Abaixo de cada texto tem a tradução para o inglês assim posso enviar a TODOS os meu amigos de uma só vez! I edited the real text,
Cigré/Brasil CE B5 – Proteção e Automação Seminário Interno de Preparação para o Colóquio de Madri 2007 Rio de Janeiro, outubro/07.
Simple Present x Present Continuous
Video Capítulo 8: Impasses. Silberschatz, Galvin and Gagne  Video Operating System Concepts Assuntos n Modelo de Sistemas n Carcterização de.
Once there were green fields, Uma vez que existiam campos verdes,
WINDOWS SMALL BUSINESS SERVER 2011 VISÃO GERAL. Agenda Visão Geral SBS 2011 Versões do SBS 2011 O que há de novo – Essentials O que há de novo – Standard.
HOW TO LEARN A MAKE A PENTEST
‘Internet rights and wrongs. Choices and challenges in a Networked World’ Hillary Clinton George Washington University, February 2011.
XML Namespaces XML Namespaces provê um método para evitar conflito de nomes de elementos.
MAC Engenharia de Software Marco A. GerosaIME / USP Mais sobre análise e Outros Diagramas UML MAC0332 Engenharia de Software Marco Aurélio Gerosa.
O que são os alertas do Google?
Broadcasting in Brazil Octavio Penna Pieranti Director/Secretariat of Electronic Communications Ministry of Communications WIPO Meeting on South-South.
Microsoft Students to Business
Fábrica de software princípios, conceitos, e ilusões
Detalhes do Monitoramento da Qualidade de Serviço na Austrália e na Inglaterra.
PSTDP Week 20 Thursday Reading/Writing.
Baby I see this world has made you sad Some people can be bad The things they do, the things they say But baby I´ll wipe away those bitter tears I´ll.
By Búzios Slides Sincronizado com a Música All For Love Bryan Adams & Rod Stewart.
Limit Equlibrium Method. Limit Equilibrium Method Failure mechanisms are often complex and cannot be modelled by single wedges with plane surfaces. Analysis.
Aula Prática 5. Fluxes (Problem 1.07) Consider the flow in a rectangular duct, formed by two paralell plates (width b=1m and height 2h= 30cm) where air.
© 2007 IBM Corporation Academic Initiative 07/05/07 Aula 2 – Parte 1: Java Basics Autores: Argemiro José de Juliano Marcos
Universidade de Brasília Laboratório de Processamento de Sinais em Arranjos 1 Adaptive & Array Signal Processing AASP Prof. Dr.-Ing. João Paulo C. Lustosa.
Universidade de Brasília Laboratório de Processamento de Sinais em Arranjos 1 Adaptive & Array Signal Processing AASP Prof. Dr.-Ing. João Paulo C. Lustosa.
Estrutura da empresa Síntese SAP Best Practices. ©2014 SAP AG. All rights reserved.2 Estrutura Organizacional Baseline Package Área Contab. Custos 1000.
Fogbow: a middleware for the federation of private clouds Francisco Brasileiro Cloudscape Brazil, Rio de Janeiro.
MELHOR VISUALIZADO NO POWER POINT 2000 There comes a time, when we hear a certain call Haverá um tempo em que ouviremos um chamado When the world must.
MODALIZAÇÕES. MODALIZAÇÃO  Para expressar graus de probabilidade e de frequência em afirmações ou perguntas, temos à disposição inúmeros operadores modais.
Unit 5 Uses of the Present Perfect (simple and continuous)
Abril 2016 Gabriel Mormilho Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo Departamento de Administração EAD5853 Análise.
Pesquisa Operacional aplicada à Gestão de Produção e Logística Prof. Eng. Junior Buzatto Case 4.
Pesquisa Operacional aplicada à Gestão de Produção e Logística Prof. Eng. Junior Buzatto Case 3.
Learning english with comics …………….. Aprendendo inglês com quadrinhos.
Visão geral do Aprendizado de máquina
TQS - Teste e Qualidade de Software (Software Testing and Quality) Geração Automática de Casos de Teste com a Ferramenta.
Three analogies to explain reactive power Why an analogy? Reactive power is an essential aspect of the electricity system, but one that is difficult to.
Wondershare software On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master].
Aplicativo EBSCO eBooks Autenticação
Trabalho de conclusão do Curso de Engenharia Quimica
Introduction to Machine learning
Simple Present Tense. . In English the Simple Present is used to express actions that are made with a certain frequency, like go to school, work, study…
Introduction to density estimation Modelação EcoLÓGICA
Pesquisadores envolvidos Recomenda-se Arial 20 ou Times New Roman 21.
Why Moringa Delight? Perfection in Growing and Processing We produce the highest quality Moringa under perfect growing conditions on the largest Moringa.
Transcrição da apresentação:

INF 2914 Web Search Lecture 2: Crawlers

Today’s lecture Crawling

Basic crawler operation Begin with known “seed” pages Fetch and parse them Extract URLs they point to Place the extracted URLs on a queue Fetch each URL on the queue and repeat

Crawling picture Web URLs crawled and parsed URLs frontier Unseen Web Seed pages

Simple picture – complications Web crawling isn’t feasible with one machine All of the above steps distributed Even non-malicious pages pose challenges Latency/bandwidth to remote servers vary Webmasters’ stipulations How “deep” should you crawl a site’s URL hierarchy? Site mirrors and duplicate pages Malicious pages Spam pages Spider traps – incl dynamically generated Politeness – don’t hit a server too often

What any crawler must do Be Polite: Respect implicit and explicit politeness considerations for a website Only crawl pages you’re allowed to Respect robots.txt (more on this shortly) Be Robust: Be immune to spider traps and other malicious behavior from web servers

What any crawler should do Be capable of distributed operation: designed to run on multiple distributed machines Be scalable: designed to increase the crawl rate by adding more machines Performance/efficiency: permit full use of available processing and network resources

What any crawler should do Fetch pages of “higher quality” first Continuous operation: Continue fetching fresh copies of a previously fetched page Extensible: Adapt to new data formats, protocols

Updated crawling picture URLs crawled and parsed Unseen Web Seed Pages URL frontier Crawling thread

URL frontier Can include multiple pages from the same host Must avoid trying to fetch them all at the same time Must try to keep all crawling threads busy

Explicit and implicit politeness Explicit politeness: specifications from webmasters on what portions of site can be crawled robots.txt Implicit politeness: even with no specification, avoid hitting any site too often

Robots.txt Protocol for giving spiders (“robots”) limited access to a website, originally from Website announces its request on what can(not) be crawled For a URL, create a file URL/robots.txt This file specifies access restrictions

Robots.txt example No robot should visit any URL starting with "/yoursite/temp/", except the robot called “searchengine": User-agent: * Disallow: /yoursite/temp/ User-agent: searchengine Disallow:

Processing steps in crawling Pick a URL from the frontier Fetch the document at the URL Parse the URL Extract links from it to other docs (URLs) Check if URL has content already seen If not, add to indexes For each extracted URL Ensure it passes certain URL filter tests Check if it is already in the frontier (duplicate URL elimination) E.g., only crawl.edu, obey robots.txt, etc. Which one?

Basic crawl architecture WWW Fetch DNS Parse Content seen? URL filter Dup URL elim Doc FP’s URL set URL Frontier robots filters

DNS (Domain Name Server) A lookup service on the internet Given a URL, retrieve its IP address Service provided by a distributed set of servers – thus, lookup latencies can be high (even seconds) Common OS implementations of DNS lookup are blocking: only one outstanding request at a time Solutions DNS caching Batch DNS resolver – collects requests and sends them out together

Parsing: URL normalization When a fetched document is parsed, some of the extracted links are relative URLs E.g., at we have a relative link to /wiki/Wikipedia:General_disclaimer which is the same as the absolute URL disclaimer disclaimer During parsing, must normalize (expand) such relative URLs

Content seen? Duplication is widespread on the web If the page just fetched is already in the index, do not further process it This is verified using document fingerprints or shingles

Filters and robots.txt Filters – regular expressions for URL’s to be crawled/not Once a robots.txt file is fetched from a site, need not fetch it repeatedly Doing so burns bandwidth, hits web server Cache robots.txt files

Duplicate URL elimination For a non-continuous (one-shot) crawl, test to see if an extracted+filtered URL has already been passed to the frontier For a continuous crawl – see details of frontier implementation

Distributing the crawler Run multiple crawl threads, under different processes – potentially at different nodes Geographically distributed nodes Partition hosts being crawled into nodes Hash used for partition How do these nodes communicate?

Communication between nodes The output of the URL filter at each node is sent to the Duplicate URL Eliminator at all nodes WWW Fetch DNS Parse Content seen? URL filter Dup URL elim Doc FP’s URL set URL Frontier robots filters Host splitter To other hosts From other hosts

URL frontier: two main considerations Politeness: do not hit a web server too frequently Freshness: crawl some pages more often than others E.g., pages (such as News sites) whose content changes often These goals may conflict each other.

Politeness – challenges Even if we restrict only one thread to fetch from a host, can hit it repeatedly Common heuristic: insert time gap between successive requests to a host that is >> time for most recent fetch from that host

URL frontier: Mercator scheme Prioritizer Biased front queue selector Back queue router Back queue selector K front queues B back queues Single host on each URLs Crawl thread requesting URL

Mercator URL frontier Front queues manage prioritization Back queues enforce politeness Each queue is FIFO

Front queues Prioritizer 1K Biased front queue selector Back queue router

Front queues Prioritizer assigns to URL an integer priority between 1 and K Appends URL to corresponding queue Heuristics for assigning priority Refresh rate sampled from previous crawls Application-specific (e.g., “crawl news sites more often”)

Biased front queue selector When a back queue requests a URL (in a sequence to be described): picks a front queue from which to pull a URL This choice can be round robin biased to queues of higher priority, or some more sophisticated variant Can be randomized

Back queues Biased front queue selector Back queue router Back queue selector 1B Heap

Back queue invariants Each back queue is kept non-empty while the crawl is in progress Each back queue only contains URLs from a single host Maintain a table from hosts to back queues Host nameBack queue …3 1 B

Back queue heap One entry for each back queue The entry is the earliest time t e at which the host corresponding to the back queue can be hit again This earliest time is determined from Last access to that host Any time buffer heuristic we choose

Back queue processing A crawler thread seeking a URL to crawl: Extracts the root of the heap Fetches URL at head of corresponding back queue q (look up from table) Checks if queue q is now empty – if so, pulls a URL v from front queues If there’s already a back queue for v’s host, append v to q and pull another URL from front queues, repeat Else add v to q When q is non-empty, create heap entry for it

Number of back queues B Keep all threads busy while respecting politeness Mercator recommendation: three times as many back queues as crawler threads

Determinando a frequência de atualização de páginas Estudar políticas de atualização de uma base de dados local com N páginas As páginas na base de dados são cópias das páginas encontradas na Web Dificuldade Quando uma página da Web é atualizada o crawler não é informado

Framework Medindo o quanto o banco de dados esta atualizado Freshness F(e i,t)=1 se a página e i esta atualizada no instante 1 e 0 caso contrário F(S,t): Freshness médio da base de dados S no instante t Age A(e i,t) = 0 se e i esta atualizada no instante t e t-t m (e i ) onde t m é o instante da última modificação de e i A(S,t) : Age médio da base de dados S no instante t

Framework Utiliza-se o freshness (age) médio ao longo do tempo para comparar diferentes políticas de atualização de páginas

Framework Processo de Poisson (N(t)) Processo estocástico que determina o número de eventos ocorridos no intervalo [0,t] Propriedades Processo sem memória: O número de eventos que ocorrem em um intervalo limitado de tempo após o instante t independe do número de eventos que ocorreram antes de t

Framework Hipótese: Um processo de Poisson é uma boa aproximação para o modelo de modificação de páginas Probabilidade de uma página ser modificada pelo menos uma vez no intervalo (0,t] Quanto maior a taxa, maior a probabilidade de haver mudança

Framework Probabilidade de uma página ser modificada pelo menos uma vez no intervalo (0,t] Quanto maior a taxa, maior a probabilidade de haver mudança

Framework Evolução da base de dados Taxa uniforme de modificação (único ) É razoável quando não se conhece o parâmetro Taxa não uniforme de modificação (um diferente para cada página)

Políticas de Atualização Frequência de Atualização Deve-se decidir quantas atualizações podem ser feitas por unidade de tempo Assumimos que os N elementos são atulizados em I unidades de tempo Diminuindo I aumentamos a taxa de atualização A relação N/I depende do número de cralwlers, banda disponível, banda nos servidores, etc.

Políticas de Atualização Alocação de Recursos Após decidir quantos elementos atualizar devemos decidir a frequência de atualização de cada elemento Podemos atualizar todos elementos na mesma taxa ou atualizar mais frequentemente elementos que se modificam com maior frequência

Políticas de Atualização Exemplo Um banco de dados contem 3 elementos {e1,e2,e3} As taxas de modificação 4/dia, 3/dia e 2/dia, respectivamente. São permitidas 9 atualizações por dia Com que taxas as atualizações devem ser feita ?

Políticas de Atualização Política Uniforme 3 atualizações / dia para todas as páginas Política Proporcional: e1: 4 atualizações / dia e2: 3 atualizaões /dia e3: 2 atualizações /dia Qual da políticas é melhor ?

Política ótima Calculando a frequência de atualização ótima. Dada uma frequência média f=N/I e a taxa média i para cada página, deve-se calcular a frequência f i com que cada página i deve ser atualizada

Política Ótima Considere um banco de dados com 5 elementos e com as seguintes taxas de modificação 1,2,3,4 e 5. Assumindo que 5 atualizações por dias são possíveis.

Política Ótima Frequência de atualização ótima. Para maximizar o freshness temos a seguinte curva

Política Ótima Maximizando o Freshenss Páginas que se modificam pouco devem ser pouco atualizadas Páginas que se modificam demais devem ser pouco atualizadas Uma atualização consome recurso e garante o freshness da página atualizada por muito pouco tempo

Experimentos Foram escohidos 270 sites. Para cada um destes 3000 páginas são atualizadas todos os dias. Experimentos realizados de 9PM as 6AM durante 4 meses 10 segundos de intervalo entre requisições ao mesmo site

Estimando frequências de modificação O intervalo médio de modificação de uma página é estimado dividindo o período em que o experimento foi realizado pelo total de modificações no período

Experimentos Verificação do processo de Poisson Seleciona-se as páginas que se modificam a uma taxa média (e.g. a cada 10 dias) e plota-se a distribuição do intervalo de mudanças

Verificando o Processo de Poisson Eixo horizontal: tempo entre duas modificações Eixo vertical: fração das modificações que ocorreram no dado intervalo As retas são as predições Para a páginas que se modificam muito e páginas que se modificam muito pouco não foi possível obter conclusões.

Alocação de Recursos Baseado nas frequências estimadas, calcula-se o freshness esperado para cada uma das três políticas consideradas. Consideramos que é possível visitar 1Gb páginas/mês

Resources IIR 20 See also Effective Page Refresh Policies For Web Crawlers Effective Page Refresh Policies For Web Crawlers Cho& Molina

Trabalho 2 - Proposta Estudar políticas de atualização de páginas Web Effective Page Refresh Policies For Web Crawlers Effective Page Refresh Policies For Web Crawlers Optimal Crawling Strategies for Web Search Engines Optimal Crawling Strategies for Web Search Engines User-centric Web crawling c.pdf

Trabalho 3- Proposta Estudar políticas para distribuição de Crawlers Parallel Crawlers Realizar pesquisa bibliográfica em artigos que citam este

Parallel crawling Why? Aggregate resources of many machines Network load dispersion Issues Quality of pages crawled (as before) Communication overhead Coverage; Overlap

Parallel crawling approach [Cho+ 2002] Partition URL’s; each crawler node responsible for one partition many choices for partition function e.g., hash(host IP) What kind of coordination among crawler nodes? 3 options: firewall mode cross-over mode exchange mode

Coordination of parallel crawlers i h g f e d a cb crawler node 1crawler node 2 modes:  firewall  cross-over  exchange

Empirical findings by Cho+ Firewall has acceptable coverage if number of crawler nodes small (<= 4) Exchange incurs small overhead (< 1% of network bandwidth) Can reduce exchanges by replicating the most popular URL’s

Trabalho 4 - Proposta Google File System Map Reduce

Trabalho 5 - Proposta XML Parsing, Tokenization, and Indexing