SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Ordenação e Recuperação de Dados

                     Aula 13:
     Índices e rastejamento (crawling) web
                Alexandre Duarte
             alexandre@di.ufpb.br


                                     1       1
Revisão da última aula
   Pesquisa na Web
   Spam
   Tamanho da Web
   Deteção de duplicatas
     Usar o Coeficiente de Jaccard para calcular a similaridade
      entre dois documentos




                                                                   2
Aula de Hoje
 Rastejamento




                 3
Sec. 20.2




Operação básica de um crawler
 Começar com um conjunto conhecidos
  de URLs (“raiz”)
 Recuperar e fazer parsing
   Extrair as URLs referenciadas
   Colocar as URLs em uma fila
 Recuperar cada URL da fila e repetir

                                           4
Sec. 20.2




Retrado do crawling



  URLs recuperadas
  e processadas
                                    Web desconhecida


      Páginas   URLs na Fronteira
        raíz
Web

                                                       5
Sec. 20.1.1




Algumas complicações desse retrato
 Crawling na web não pode ser feito com uma única máquina
    Todos os passos descritos são distribuídos
 Páginas maliciosas
    Spam
    Armadilhas– incluído páginas geradas dinamicamente
 Mesmo páginas não maliciosas podem ser desafiadoras
    Latência/largura de banda de servidores remotos varia
    Profundidade
        Quão “profundo” deve-se ir numa hierarquia de URLs?
    Espelhos e duplicatas de sites
    Educação – não borbardear um servidor muito frequentemente




                                                                       6
Sec. 20.1.1




O que todo crawler precisa fazer
 Ser Educado: Respeitar considerações
  implícitas e explicitas
   Só processar páginas permitidas
   Respeitar o robots.txt (mais sobre isso jajá)
 Ser Robusto: Ser imune a armadilhas e
  comportamento malicioso de servidores
  web

                                                    7
Sec. 20.1.1




O que todo crawler deve fazer
 Se capaz de operar de forma distribuída:
  projetado para rodar em várias máquinas
  distribuídas
 Ser escalável: projetado para aumentar a taxa de
  processamento com a adição de mais máquinas
 Desempenho/eficiência: permitir uso total dos
  recursos de processamento e rede disponíveis



                                                     8
Sec. 20.1.1




O que todo crawler deve fazer
 Recuperar as páginas de “maior qualidade”
  primeiro
 Operação Contínua: Continuar a recuperar
  cópias atualizadas de páginas previamente
  recuperadas
 Extensibilidade: Adaptação a novos
  formatos de dados, protocolos, etc

                                              9
Sec. 20.1.1




 Retrato do crawling atualizado



   URLs recuperadas
   e processadas
                                  Web desconhecida


      Páginas
        Raiz

                  URLs na Fronteira
Crawling thread                                      10
Sec. 20.2




URLs na fronteira
 Podem incluir várias páginas de um mesmo
  servidor
 Precisa evitar tentar recuperar todas elas
  ao mesmo tempo
 Precisa tentar manter todos os crawling
  threads ocupados



                                              11
Sec. 20.2




Educação Explicita e Implícita
 Educação explicita: especificações dos
  webmasters sobre que porções do site
  podem ser recuperadas
   robots.txt
 Educação implícita: mesmo sem
  especificação, evitar visitar um site muito
  frequentemente


                                                  12
Sec. 20.2.1




Robots.txt
 Protocolo criado em 1994 para dar aos crawlers
  (“robôs”) acesso limitado a um website
    www.robotstxt.org/wc/norobots.html
 Website anunciam seus requisitos sobre o que
  pode e não pode ser recuperado
 Para um servidor, criar um arquivo /robots.txt
    Este arquivo especifica as restrições de acesso



                                                       13
Sec. 20.2.1




Exemplo de Robots.txt
 Nenhum robô deve visitar URLs começando com
  "/yoursite/temp/", exceto o robô chamado
  “searchengine":

User-agent: *
Disallow: /yoursite/temp/

User-agent: searchengine
Disallow:

                                                  14
Sec. 20.2.1

Etapas de processamento durante o
crawling
 Escolher uma URL da fronteira       Qual?
 Recuperar o documento correspondente
 Fazer parse do documento
    Extrair links para outros documentos (URLs)
 Checar se a URL tem conteúdo já visto
    Se não, adicionar ao índices         Ex., só processar .edu,
 Para cada URL extraída                 obedecer robots.txt, etc.
    Garantir que ela passa em alguns filtros de teste para URLs
    Checar se ela já está na fronteira (eliminação de URLs
     duplicadas)
                                                                15
Sec. 20.2.1




Arquitetura básica
       DNS
                        Doc      robots    URL
                        FP’s     filters   set


WWW
               Parse
       Fetch                               Dup
                       Content     URL
                        seen?              URL
                                  filter
                                           elim



                   URL Frontier
                                                   16
Sec. 20.2.2




DNS (Domain Name Server)
 Um serviço de consulta na Web
   Dada uma URL, recuperar seu endereço IP
   Serviço oferecido por um conjunto distribuído de
    servidores, portanto, latências de consulta podem ser
    altas (mesmo de segundos)
 Implementações comuns de consultas a DNS nos
  Sistemas Operacionais são bloqueantes: apenas uma
  consulta aberta por vez
 Soluções
   Cache de DNS
   Batch DNS resolver – coleta as requisições e envia as
    consultas de uma só vez                                    17
Sec. 20.2.1




 Parsing: normalização de URL
 Quando um documento recuperado é processado,
  alguns dos links são URLs relativas
 Ex., http://en.wikipedia.org/wiki/Main_Page tem um
  link relativo para /wiki/Wikipedia:General_disclaimer
  que aponta para a URL absoluta
  http://en.wikipedia.org/wiki/Wikipedia:General_disclaimer
 Durante o parsing é preciso normalizar (expandir) URLs
  relativas



                                                                     18
Sec. 20.2.1




Conteúdo já visto?
 Duplicação está em todo lugar na web
 Se a página recuperada já está no
  índice, deve ser ignorada
 Isso é verificado utilizando assinaturas
  de documentos



                                             19
Sec. 20.2.1




Filtros e robots.txt
  Filtros – expressões regulares para URLs
   a serem (ou não) recuperadas
  Uma vez que o arquivo robots.txt de um
   site é recuperado, ele não precisa ser
   recuperado repetivas vezes
    Fazer isso consume largura de banda e
     afeta os servidores web
  Fazer cache dos arquivos robots.txt
                                                20
Sec. 20.2.1




Eliminação de URL duplicadas
 Para uma recuperação não-contínua, testar
  para ver se a URL extraída+filtrada já está
  na fronteira
 Para uma recuperação contínua, ver
  detalhes sobre a implementação da
  fronteira



                                               21
Sec. 20.2.1




Distribuíndo o crawler
 Executar vários threads do crawler, dentro de
  diferentes processos, potencialmente em
  diferentes nós
   Nós distribuídos geograficamente
 Particionar os servidores sendo processados
  entre os nós
   Partição baseada em hash
 Como esses nós se comunicam e compartilham
  URLs?
                                                    22
Sec. 20.2.1




Comunicação entre os nós
  Saída do filtro de URLs em cada nó é enviada para um
   Eliminador de URLs Duplicadas do nó apropriado
       DNS                                    Para
                         Doc      robots      outros       URL
                         FP’s     filters     nós          set

WWW
               Parse                          Host
      Fetch                                  splitter      Dup
                        Content      URL
                         seen?                             URL
                                    filter
                                                           elim
                                              De
                                              outros
                                              nós
                     URL Frontier                              23
Sec. 20.2.3

URLs na fronteira: duas principais
considerações
 Educação: não visitar um servidor web muito
  frequentemente
 Atualização: recuperar algumas páginas mais
  frequentemente que outras
   Ex., páginas (como sites de notícias) cujos
    conteúdos mudam frequentemente
Estes objetivos estão em conflitos.
(Ex., Filas de prioridade não são suficientes –
  muitos dos links de uma página vão para o
  mesmo servidor, criando uma rajada de acessos a
  este servidor.)                                        24
Sec. 20.2.3




Educação – desafios
 Mesmo que restrinjamos a um único thread
  por host, ele ainda poderá ser visitado
  repetidas vezes
 Heurística comum: inserir um intervalo
  entre duas consultas sucessivas a um
  mesmo servidor que seja >> que o tempo
  necessário para recuperar o documento da
  última vez
                                            25
Sec. 20.2.3

URL na fronteira: Esquema de
Mercator
                    URLs

                 Prioritizer

               K front queues

          Biased front queue selector
               Back queue router
                B back queues
             Single host on each

            Back queue selector

          Crawl thread requesting URL          26
Sec. 20.2.3




Fronteira de URLs de Mercator
   As URLs fluem do topo até a fronteira
   As filas da frente gerenciam a priorização
   As filas de trás garantem educação
   Cada fila é FIFO




                                                        27
Sec. 20.2.3




Filas da Frente
                  Prioritizer

   1                                       K




          Biased front queue selector
               Back queue router               28
Sec. 20.2.3




Filas da Frente
 Prioritizer atribui uma prioridade de 1 a K para
  cada URL
    Adiciona a URL à fila correspondente
 Heurística para atribuição de prioridade
    Taxa de atualização observada nas recuperações
     anteriores
    Específica da Aplicação (ex., “checar sites de
     notícias mais frequentemente”)


                                                      29
Sec. 20.2.3




Biased front queue selector
 Quando uma fila de trás solicita uma URL:
  escolhe uma fila da frente de onde remover a
  URL
 Esta escolha pode ser feita utilizando round robin
  ou utilizando alguma variante mais sofisticada
   Também pode ser aleatória




                                                     30
Sec. 20.2.3




Filas de trás
            Biased front queue selector
                 Back queue router

    1                                          B




                Back queue selector       Heap
                                                   31
Sec. 20.2.3



Filas de trás
 Cada fila é mantida não-vazia enquanto o
  processamento é realizado
 Cada fila contém URLs de um único servidor
    Manter uma tabela mapeando servidores em
     filas

                Host name   Back queue
                …           3
                            1
                            B
                                                  32
Heap das filas de trás
 Uma entrada para cada fila de trás
 A entrada é o menor tempo te no qual o servidor
  correspondente pode ser visitado novamente
 O menor tempo é determinado a partir do
   Último acesso ao servidor
   Alguma outra heurística desejada




                                                    33
Sec. 20.2.3




Processamento das filas de trás
  Um crawler thread a procura de uma URL para recuperar:
  Extrair a raiz do heap
  Recuperar a URL na cabeça da fila correspondente q (olhar a
   tabela)
  Checar se a fila q esta vazia – em caso afirmativo obter uma
   URL v das filas da frente
     se já existe uma fila de trás para o servidor de v, adicionar v à esta fila
      e pegar outra URL das filas da frente, repetir
     Caso contrário, adicionar v a q
  Quando q é não-vazia, criar uma entrada no heap para q


                                                                              34
Sec. 20.2.3




Número de filas de trás B
 Manter todos os threads ocupados mas
  mantendo a educação
 Recomendação de Mercator: ter três vezes mais
  filas que crawler threads




                                                  35

Weitere ähnliche Inhalte

Ähnlich wie Índices e Rastejamento na Web

Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebRafael Chagas
 
Aplicações Web - um estudo sobre React
Aplicações Web - um estudo sobre ReactAplicações Web - um estudo sobre React
Aplicações Web - um estudo sobre ReactJean Carlo Emer
 
Soluções de Web Caching e Web Acceleration - Domingos Parra Novo
Soluções de Web Caching e Web Acceleration - Domingos Parra NovoSoluções de Web Caching e Web Acceleration - Domingos Parra Novo
Soluções de Web Caching e Web Acceleration - Domingos Parra NovoTchelinux
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMRodrigo Zaccara
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Vinicius Pulgatti
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a WebLuiz Cláudio Silva
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application ServerFabricio Carvalho
 
Light Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsLight Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsCaio Ribeiro Pereira
 
Implementacao de servidores recursivos guia de praticas semcap ceptro br.pdf
Implementacao de servidores recursivos guia de praticas semcap ceptro br.pdfImplementacao de servidores recursivos guia de praticas semcap ceptro br.pdf
Implementacao de servidores recursivos guia de praticas semcap ceptro br.pdfleandrodesousa13
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Celso Fernandes
 

Ähnlich wie Índices e Rastejamento na Web (20)

Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na Web
 
Web - Crawlers
Web - CrawlersWeb - Crawlers
Web - Crawlers
 
Aplicações Web - um estudo sobre React
Aplicações Web - um estudo sobre ReactAplicações Web - um estudo sobre React
Aplicações Web - um estudo sobre React
 
Soluções de Web Caching e Web Acceleration - Domingos Parra Novo
Soluções de Web Caching e Web Acceleration - Domingos Parra NovoSoluções de Web Caching e Web Acceleration - Domingos Parra Novo
Soluções de Web Caching e Web Acceleration - Domingos Parra Novo
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Web Crawlers
Web CrawlersWeb Crawlers
Web Crawlers
 
Slides
SlidesSlides
Slides
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
 
1409243945064
14092439450641409243945064
1409243945064
 
Servidor proxy
Servidor proxy Servidor proxy
Servidor proxy
 
HTTP Monkey
HTTP MonkeyHTTP Monkey
HTTP Monkey
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Técnicas de Programação para a Web
Técnicas de Programação para a WebTécnicas de Programação para a Web
Técnicas de Programação para a Web
 
Apache proxy
Apache proxyApache proxy
Apache proxy
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Curso de proxy
Curso de proxyCurso de proxy
Curso de proxy
 
Light Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.jsLight Talk: Introdução sobre Node.js
Light Talk: Introdução sobre Node.js
 
Implementacao de servidores recursivos guia de praticas semcap ceptro br.pdf
Implementacao de servidores recursivos guia de praticas semcap ceptro br.pdfImplementacao de servidores recursivos guia de praticas semcap ceptro br.pdf
Implementacao de servidores recursivos guia de praticas semcap ceptro br.pdf
 
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
 
Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01Mini-curso RoR - Aula 01
Mini-curso RoR - Aula 01
 

Mehr von Alexandre Duarte

Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosAlexandre Duarte
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Alexandre Duarte
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaAlexandre Duarte
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como CiênciaAlexandre Duarte
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: IntroduçãoAlexandre Duarte
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerAlexandre Duarte
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBAlexandre Duarte
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisAlexandre Duarte
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e ClassificaçãoAlexandre Duarte
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2DAlexandre Duarte
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1DAlexandre Duarte
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de DadosAlexandre Duarte
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosAlexandre Duarte
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de SurveysAlexandre Duarte
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Alexandre Duarte
 

Mehr von Alexandre Duarte (20)

Projeto de Experimentos
Projeto de ExperimentosProjeto de Experimentos
Projeto de Experimentos
 
Táticas para Projeto de Experimentos
Táticas para Projeto de ExperimentosTáticas para Projeto de Experimentos
Táticas para Projeto de Experimentos
 
Causalidade e Abdução
Causalidade e AbduçãoCausalidade e Abdução
Causalidade e Abdução
 
Fazer Ciência é Difícil!
Fazer Ciência é Difícil!Fazer Ciência é Difícil!
Fazer Ciência é Difícil!
 
Atividades Científica
Atividades CientíficaAtividades Científica
Atividades Científica
 
Escolhendo um Projeto de Pesquisa
Escolhendo um Projeto de PesquisaEscolhendo um Projeto de Pesquisa
Escolhendo um Projeto de Pesquisa
 
Ciência da Computação como Ciência
Ciência da Computação como CiênciaCiência da Computação como Ciência
Ciência da Computação como Ciência
 
Metodologia da Pesquisa Científica: Introdução
Metodologia da Pesquisa Científica:  IntroduçãoMetodologia da Pesquisa Científica:  Introdução
Metodologia da Pesquisa Científica: Introdução
 
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerGráficos: 10 dicas sobre o que fazer e sobre o que não fazer
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazer
 
Panorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPBPanorama de Pesquisas em Análise de Dados na UFPB
Panorama de Pesquisas em Análise de Dados na UFPB
 
Agrupamento com K-Means
Agrupamento com K-MeansAgrupamento com K-Means
Agrupamento com K-Means
 
Sumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis NominaisSumarização Estatística 2D: Variáveis Nominais
Sumarização Estatística 2D: Variáveis Nominais
 
Correlação e Classificação
Correlação e ClassificaçãoCorrelação e Classificação
Correlação e Classificação
 
Sumarização Estatística 2D
Sumarização Estatística 2DSumarização Estatística 2D
Sumarização Estatística 2D
 
Sumarização Estatística 1D
Sumarização Estatística 1DSumarização Estatística 1D
Sumarização Estatística 1D
 
Transformação de Dados
Transformação de DadosTransformação de Dados
Transformação de Dados
 
Preparação e Limpeza de Dados
Preparação e Limpeza de DadosPreparação e Limpeza de Dados
Preparação e Limpeza de Dados
 
Introdução ao Projeto de Experimentos
Introdução ao Projeto de ExperimentosIntrodução ao Projeto de Experimentos
Introdução ao Projeto de Experimentos
 
Introdução ao Projeto de Surveys
Introdução ao Projeto de SurveysIntrodução ao Projeto de Surveys
Introdução ao Projeto de Surveys
 
Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01Introdução à Análise de Dados - Aula 01
Introdução à Análise de Dados - Aula 01
 

Kürzlich hochgeladen

Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxBiancaNogueira42
 

Kürzlich hochgeladen (20)

Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptxAula 13 8º Ano Cap.04 Revolução Francesa.pptx
Aula 13 8º Ano Cap.04 Revolução Francesa.pptx
 

Índices e Rastejamento na Web

  • 1. Ordenação e Recuperação de Dados Aula 13: Índices e rastejamento (crawling) web Alexandre Duarte alexandre@di.ufpb.br 1 1
  • 2. Revisão da última aula  Pesquisa na Web  Spam  Tamanho da Web  Deteção de duplicatas  Usar o Coeficiente de Jaccard para calcular a similaridade entre dois documentos 2
  • 3. Aula de Hoje  Rastejamento 3
  • 4. Sec. 20.2 Operação básica de um crawler  Começar com um conjunto conhecidos de URLs (“raiz”)  Recuperar e fazer parsing  Extrair as URLs referenciadas  Colocar as URLs em uma fila  Recuperar cada URL da fila e repetir 4
  • 5. Sec. 20.2 Retrado do crawling URLs recuperadas e processadas Web desconhecida Páginas URLs na Fronteira raíz Web 5
  • 6. Sec. 20.1.1 Algumas complicações desse retrato  Crawling na web não pode ser feito com uma única máquina  Todos os passos descritos são distribuídos  Páginas maliciosas  Spam  Armadilhas– incluído páginas geradas dinamicamente  Mesmo páginas não maliciosas podem ser desafiadoras  Latência/largura de banda de servidores remotos varia  Profundidade  Quão “profundo” deve-se ir numa hierarquia de URLs?  Espelhos e duplicatas de sites  Educação – não borbardear um servidor muito frequentemente 6
  • 7. Sec. 20.1.1 O que todo crawler precisa fazer  Ser Educado: Respeitar considerações implícitas e explicitas  Só processar páginas permitidas  Respeitar o robots.txt (mais sobre isso jajá)  Ser Robusto: Ser imune a armadilhas e comportamento malicioso de servidores web 7
  • 8. Sec. 20.1.1 O que todo crawler deve fazer  Se capaz de operar de forma distribuída: projetado para rodar em várias máquinas distribuídas  Ser escalável: projetado para aumentar a taxa de processamento com a adição de mais máquinas  Desempenho/eficiência: permitir uso total dos recursos de processamento e rede disponíveis 8
  • 9. Sec. 20.1.1 O que todo crawler deve fazer  Recuperar as páginas de “maior qualidade” primeiro  Operação Contínua: Continuar a recuperar cópias atualizadas de páginas previamente recuperadas  Extensibilidade: Adaptação a novos formatos de dados, protocolos, etc 9
  • 10. Sec. 20.1.1 Retrato do crawling atualizado URLs recuperadas e processadas Web desconhecida Páginas Raiz URLs na Fronteira Crawling thread 10
  • 11. Sec. 20.2 URLs na fronteira  Podem incluir várias páginas de um mesmo servidor  Precisa evitar tentar recuperar todas elas ao mesmo tempo  Precisa tentar manter todos os crawling threads ocupados 11
  • 12. Sec. 20.2 Educação Explicita e Implícita  Educação explicita: especificações dos webmasters sobre que porções do site podem ser recuperadas  robots.txt  Educação implícita: mesmo sem especificação, evitar visitar um site muito frequentemente 12
  • 13. Sec. 20.2.1 Robots.txt  Protocolo criado em 1994 para dar aos crawlers (“robôs”) acesso limitado a um website  www.robotstxt.org/wc/norobots.html  Website anunciam seus requisitos sobre o que pode e não pode ser recuperado  Para um servidor, criar um arquivo /robots.txt  Este arquivo especifica as restrições de acesso 13
  • 14. Sec. 20.2.1 Exemplo de Robots.txt  Nenhum robô deve visitar URLs começando com "/yoursite/temp/", exceto o robô chamado “searchengine": User-agent: * Disallow: /yoursite/temp/ User-agent: searchengine Disallow: 14
  • 15. Sec. 20.2.1 Etapas de processamento durante o crawling  Escolher uma URL da fronteira Qual?  Recuperar o documento correspondente  Fazer parse do documento  Extrair links para outros documentos (URLs)  Checar se a URL tem conteúdo já visto  Se não, adicionar ao índices Ex., só processar .edu,  Para cada URL extraída obedecer robots.txt, etc.  Garantir que ela passa em alguns filtros de teste para URLs  Checar se ela já está na fronteira (eliminação de URLs duplicadas) 15
  • 16. Sec. 20.2.1 Arquitetura básica DNS Doc robots URL FP’s filters set WWW Parse Fetch Dup Content URL seen? URL filter elim URL Frontier 16
  • 17. Sec. 20.2.2 DNS (Domain Name Server)  Um serviço de consulta na Web  Dada uma URL, recuperar seu endereço IP  Serviço oferecido por um conjunto distribuído de servidores, portanto, latências de consulta podem ser altas (mesmo de segundos)  Implementações comuns de consultas a DNS nos Sistemas Operacionais são bloqueantes: apenas uma consulta aberta por vez  Soluções  Cache de DNS  Batch DNS resolver – coleta as requisições e envia as consultas de uma só vez 17
  • 18. Sec. 20.2.1 Parsing: normalização de URL  Quando um documento recuperado é processado, alguns dos links são URLs relativas  Ex., http://en.wikipedia.org/wiki/Main_Page tem um link relativo para /wiki/Wikipedia:General_disclaimer que aponta para a URL absoluta http://en.wikipedia.org/wiki/Wikipedia:General_disclaimer  Durante o parsing é preciso normalizar (expandir) URLs relativas 18
  • 19. Sec. 20.2.1 Conteúdo já visto?  Duplicação está em todo lugar na web  Se a página recuperada já está no índice, deve ser ignorada  Isso é verificado utilizando assinaturas de documentos 19
  • 20. Sec. 20.2.1 Filtros e robots.txt  Filtros – expressões regulares para URLs a serem (ou não) recuperadas  Uma vez que o arquivo robots.txt de um site é recuperado, ele não precisa ser recuperado repetivas vezes  Fazer isso consume largura de banda e afeta os servidores web  Fazer cache dos arquivos robots.txt 20
  • 21. Sec. 20.2.1 Eliminação de URL duplicadas  Para uma recuperação não-contínua, testar para ver se a URL extraída+filtrada já está na fronteira  Para uma recuperação contínua, ver detalhes sobre a implementação da fronteira 21
  • 22. Sec. 20.2.1 Distribuíndo o crawler  Executar vários threads do crawler, dentro de diferentes processos, potencialmente em diferentes nós  Nós distribuídos geograficamente  Particionar os servidores sendo processados entre os nós  Partição baseada em hash  Como esses nós se comunicam e compartilham URLs? 22
  • 23. Sec. 20.2.1 Comunicação entre os nós  Saída do filtro de URLs em cada nó é enviada para um Eliminador de URLs Duplicadas do nó apropriado DNS Para Doc robots outros URL FP’s filters nós set WWW Parse Host Fetch splitter Dup Content URL seen? URL filter elim De outros nós URL Frontier 23
  • 24. Sec. 20.2.3 URLs na fronteira: duas principais considerações  Educação: não visitar um servidor web muito frequentemente  Atualização: recuperar algumas páginas mais frequentemente que outras  Ex., páginas (como sites de notícias) cujos conteúdos mudam frequentemente Estes objetivos estão em conflitos. (Ex., Filas de prioridade não são suficientes – muitos dos links de uma página vão para o mesmo servidor, criando uma rajada de acessos a este servidor.) 24
  • 25. Sec. 20.2.3 Educação – desafios  Mesmo que restrinjamos a um único thread por host, ele ainda poderá ser visitado repetidas vezes  Heurística comum: inserir um intervalo entre duas consultas sucessivas a um mesmo servidor que seja >> que o tempo necessário para recuperar o documento da última vez 25
  • 26. Sec. 20.2.3 URL na fronteira: Esquema de Mercator URLs Prioritizer K front queues Biased front queue selector Back queue router B back queues Single host on each Back queue selector Crawl thread requesting URL 26
  • 27. Sec. 20.2.3 Fronteira de URLs de Mercator  As URLs fluem do topo até a fronteira  As filas da frente gerenciam a priorização  As filas de trás garantem educação  Cada fila é FIFO 27
  • 28. Sec. 20.2.3 Filas da Frente Prioritizer 1 K Biased front queue selector Back queue router 28
  • 29. Sec. 20.2.3 Filas da Frente  Prioritizer atribui uma prioridade de 1 a K para cada URL  Adiciona a URL à fila correspondente  Heurística para atribuição de prioridade  Taxa de atualização observada nas recuperações anteriores  Específica da Aplicação (ex., “checar sites de notícias mais frequentemente”) 29
  • 30. Sec. 20.2.3 Biased front queue selector  Quando uma fila de trás solicita uma URL: escolhe uma fila da frente de onde remover a URL  Esta escolha pode ser feita utilizando round robin ou utilizando alguma variante mais sofisticada  Também pode ser aleatória 30
  • 31. Sec. 20.2.3 Filas de trás Biased front queue selector Back queue router 1 B Back queue selector Heap 31
  • 32. Sec. 20.2.3 Filas de trás  Cada fila é mantida não-vazia enquanto o processamento é realizado  Cada fila contém URLs de um único servidor  Manter uma tabela mapeando servidores em filas Host name Back queue … 3 1 B 32
  • 33. Heap das filas de trás  Uma entrada para cada fila de trás  A entrada é o menor tempo te no qual o servidor correspondente pode ser visitado novamente  O menor tempo é determinado a partir do  Último acesso ao servidor  Alguma outra heurística desejada 33
  • 34. Sec. 20.2.3 Processamento das filas de trás  Um crawler thread a procura de uma URL para recuperar:  Extrair a raiz do heap  Recuperar a URL na cabeça da fila correspondente q (olhar a tabela)  Checar se a fila q esta vazia – em caso afirmativo obter uma URL v das filas da frente  se já existe uma fila de trás para o servidor de v, adicionar v à esta fila e pegar outra URL das filas da frente, repetir  Caso contrário, adicionar v a q  Quando q é não-vazia, criar uma entrada no heap para q 34
  • 35. Sec. 20.2.3 Número de filas de trás B  Manter todos os threads ocupados mas mantendo a educação  Recomendação de Mercator: ter três vezes mais filas que crawler threads 35