Web Crawlers

4,911 views

Published on

An overview of web crawlers, and a traditional web vs semantic web analysis.

Published in: Technology

Web Crawlers

  1. 1. Web CrawlersWeb Atual x Web Semântica Alberto Trindade Tavares
  2. 2. O que é um Web Crawler?• Um Web crawler é um programa de computador que navega pela World Wide Web de maneira metódica e automatizada. [Wikipedia] Também conhecido como web spider, bots e scutter
  3. 3. Usos para Web Crawler• No contexto da web atual, as principais funções do crawler são:  Atualizar base de dados de motores de buscas, através da coleta de informações sobre o que está disponível nas páginas web públicas • Links; • Tags; • Palavras-chaves; • etc. Exemplo: Googlebot, crawler da Google.
  4. 4. Usos para Web Crawler Atender necessidades específicas como download de imagens de um conjunto de páginas, sistemas de downloads como Megaupload ou uma busca e categorização de informações distribuídas entre diversos sites; Validação automatizada de código HTML de páginas; Mineração de endereços de email a partir de páginas, comumente utilizado para spam; Entre outras.
  5. 5. Crawlers para a web atual• Os web crawlers desenvolvidos em sua grande maioria são voltados para a web tradicional, onde temos o foco em documentos HTML que são conectados através de hiperlinks.
  6. 6. Crawlers para a web atual• Exemplos de crawlers que trabalham sobre a Web atual:  Googlebot <http://www.googlebot.com/bot.html>  Scrapy <http://scrapy.org>  Nutch <http://nutch.org.br>
  7. 7. Googlebot• Web crawler da Google desenvolvido em C++;• Utilizado para a descoberta de páginas novas e atualizadas para serem incluídas no índice da Google;• Processo de rastreamento de páginas se inicia com uma lista de URLs, gerada a partir de processos anteriores, e a cada visita a uma dessas páginas, os links (SRC e HREF) detectados são incluídos na lista de páginas a serem atualizadas;• Novos sites, alterações em sites existentes e links inativos serão detectados e usados para a atualizar o índice do Google. [Google Inc]
  8. 8. Scrapy• Framework open-source implementado em Python para o desenvolvimento de aplicações de web crawling;• Fornece componentes para a seleção e extração de dados a partir de fontes HTML e XML;• XPath é utilizado para extrair os dados a partir de páginas web, onde expressões XPath especificam tags dos quais serão extraídos os dados;• Suporte a download automático de imagens associados com os itens extraídos; [Insophia, 2007]
  9. 9. Nutch• Web crawler open-source desenvolvido em Java;• Permite encontrar links de páginas web de forma automática, verificando links quebrados e criando cópias de todas as páginas visitadas para pesquisas sobre elas;• Definição de seeds do crawling em um arquivo de texto com as URLs, e opcionalmente expressões regulares que especificam domínio de páginas a serem buscadas;• Interface por linha de comando para configurar o crawling, setando parametros como diretório para armazenar o resultado do crawling, número de threads para busca em paralelo, profundidade da busca, etc;• Possui arquitetura bastante modular, permitindo desenvolvedores a criar plugins para recuperação, consulta e clusterização de dados; [The Apache Software Foundation, 2004]
  10. 10. Crawlers para a web semânticaMotivação:• Mais dados disponíveis na web representados por padrões da web semântica;  RDF, OWL, etc.• Iniciativas para a publicação de dados seguindo os princípios do Linked Data;  Linked Open Data (LOD)• Tecnologias de web semântica facilitam a integração de dados a partir de múltiplas fontes.
  11. 11. Crawlers para a web semânticaLinked Data:
  12. 12. Crawlers para a web semântica Arquitetura geral dos crawlers para a Linked Data:1. Obter URI da fila2. Abrir conexão e buscar conteúdo3. Processar e armazenar conteúdo4. Extrair novos links e colocar na fila5. Em intervalos definidos: escalar URIs na fila [Andreas Harth, Crawling and Querying Linked Data, 2010]
  13. 13. Crawlers para a web semântica• Exemplos de crawlers que trabalham sobre a Web Semântica/Linked Data:  LDSpider <http://code.google.com/p/ldspider/>  Slug <http://code.google.com/p/slug-semweb-crawler/>  Ontobroker RDF Crawler < http://ontobroker.semanticweb.org/rdfcrawl/>
  14. 14. LDSpider• Web crawler open-source para Linked Data desenvolvido em Java;• Busca de arquivos RDF na web de dados a partir de URIs seed;• Permite a extração de arquivos em diferentes formatos, como RDF/XML e N-Quad;• Fornece tanto uma interface por linha de comando de fácil utilização, quanto uma API Java que permite aplicações configurar e controlar os detalhes do processo de crawling. [Robert Isele, Andreas Harth, Jürgen Umbrich, and Christian Bizer. 2010]
  15. 15. Slug• Web crawler open-source projetado para extrair conteúdo da web semântica, implementado em Java usando a API Jena;• Fornece um framework modular e configurável que permite controlar a recuperação, processamento e armazenamento do conteúdo explorado;• Recuperação multi-threaded de dados RDF via HTTP e criação de um cache local de dados extraídos;• A API Jena permite usar consultas SPARQL para gerar relatórios a partir da memória do crawler, obtendo informações como recursos que geraram mais triplas, histórico de crawl para dado recurso, etc. [Leigh Dodds, leigh@ldodds.com, February 2006]
  16. 16. Ontobroker RDF Crawler• Web crawler open-source desenvolvido em Java que permite fazer download de fragmentos interconectados de RDF – tanto de arquivos RDF puro quanto embutido no HTML – da web de dados;• Manutenção de uma lista de URIs para serem recuperadas durante o crawling;• Filtragem de URIs através da especificação de domínios, de prefixo da URI, por extensão de arquivos (HTML, RDF, etc.), entre outras;• Assim como o LDSpider, é fornecida uma aplicação console e uma API embutida que permite o desenvolvimento de novas aplicações de crawling. [Kalvis Apsitis, kalvis.apsitis@dati.lv, DATI Software Group, 2000]
  17. 17. Web atual x Web semântica• Os crawlers para a web semântica se diferem dos crawlers para a web tradicional no que se refere a:  Formato das fontes que são buscadas;  Especificação dos links entre recursos de informação na web.  Crawlers tradicionais trabalham sobre documentos HTML, enquanto Crawlers para a web semântica trabalham sobre metadados RDF com implementação de links usando relacionamentos como rdfs:seeAlso.
  18. 18. Web atual x Web semântica: crawlers Crawler Web Open Tipo Plataforma Linguagem Formato das Semântica Source de Implem. FontesGoogleBot Aplicativo Linux C++ HTMLScrapy Framework Windows/Linux Python HTML/XMLNutch Aplicativo Windows/Linux Java HTMLLDSpider Aplicativo/API Windows/Linux Java RDFSlug Framework Windows/Linux Java RDFOntoBroker Aplicativo/API Windows Java HTML/RDF

×