SlideShare a Scribd company logo
1 of 18
Web Crawlers
Web Atual x Web Semântica


  Alberto Trindade Tavares
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
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.
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.
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.
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>
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]
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]
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]
Crawlers para a web semântica
Motivaçã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.
Crawlers para a web semântica
Linked Data:
Crawlers para a web semântica
  Arquitetura geral dos crawlers para a Linked
  Data:

1. Obter URI da fila
2. Abrir conexão e buscar
   conteúdo
3. Processar e armazenar
   conteúdo
4. Extrair novos links e
   colocar na fila
5. Em intervalos definidos:
   escalar URIs na fila



                   [Andreas Harth, Crawling and Querying Linked Data, 2010]
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/>
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]
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]
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]
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.
Web atual x Web semântica: crawlers
  Crawler      Web        Open        Tipo          Plataforma     Linguagem    Formato das
             Semântica   Source                                    de Implem.      Fontes
GoogleBot                           Aplicativo         Linux          C++         HTML

Scrapy                             Framework       Windows/Linux    Python      HTML/XML

Nutch                               Aplicativo     Windows/Linux      Java        HTML

LDSpider                          Aplicativo/API   Windows/Linux      Java         RDF

Slug                               Framework       Windows/Linux      Java         RDF

OntoBroker                        Aplicativo/API     Windows          Java      HTML/RDF

More Related Content

Viewers also liked

Top 5 Tools for Web Scraping
Top 5 Tools for Web ScrapingTop 5 Tools for Web Scraping
Top 5 Tools for Web ScrapingPromptCloud
 
WordPress CMS - Gestão de conteúdo nunca foi tão fácil
WordPress CMS - Gestão de conteúdo nunca foi tão fácilWordPress CMS - Gestão de conteúdo nunca foi tão fácil
WordPress CMS - Gestão de conteúdo nunca foi tão fácilMatteus Barbosa
 
Java Web Scraping
Java Web ScrapingJava Web Scraping
Java Web ScrapingSumant Raja
 
Almost Scraping: Web Scraping without Programming
Almost Scraping: Web Scraping without ProgrammingAlmost Scraping: Web Scraping without Programming
Almost Scraping: Web Scraping without ProgrammingMichelle Minkoff
 
Scraping data from the web and documents
Scraping data from the web and documentsScraping data from the web and documents
Scraping data from the web and documentsTommy Tavenner
 
Startups com WordPress - Tirando a sua ideia do papel
Startups com WordPress - Tirando a sua ideia do papelStartups com WordPress - Tirando a sua ideia do papel
Startups com WordPress - Tirando a sua ideia do papelLeonardo Velozo
 
Modelo de Declaracao do escopo do projeto
Modelo de Declaracao do escopo do projetoModelo de Declaracao do escopo do projeto
Modelo de Declaracao do escopo do projetoFernando Palma
 

Viewers also liked (9)

Top 5 Tools for Web Scraping
Top 5 Tools for Web ScrapingTop 5 Tools for Web Scraping
Top 5 Tools for Web Scraping
 
Case Editora Abril
Case Editora AbrilCase Editora Abril
Case Editora Abril
 
WordPress CMS - Gestão de conteúdo nunca foi tão fácil
WordPress CMS - Gestão de conteúdo nunca foi tão fácilWordPress CMS - Gestão de conteúdo nunca foi tão fácil
WordPress CMS - Gestão de conteúdo nunca foi tão fácil
 
Java Web Scraping
Java Web ScrapingJava Web Scraping
Java Web Scraping
 
Web crawler
Web crawlerWeb crawler
Web crawler
 
Almost Scraping: Web Scraping without Programming
Almost Scraping: Web Scraping without ProgrammingAlmost Scraping: Web Scraping without Programming
Almost Scraping: Web Scraping without Programming
 
Scraping data from the web and documents
Scraping data from the web and documentsScraping data from the web and documents
Scraping data from the web and documents
 
Startups com WordPress - Tirando a sua ideia do papel
Startups com WordPress - Tirando a sua ideia do papelStartups com WordPress - Tirando a sua ideia do papel
Startups com WordPress - Tirando a sua ideia do papel
 
Modelo de Declaracao do escopo do projeto
Modelo de Declaracao do escopo do projetoModelo de Declaracao do escopo do projeto
Modelo de Declaracao do escopo do projeto
 

Similar to Web Crawlers

Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...André Curvello
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATALeonardo Dias
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a InternetLeonardo Soares
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioFernando Palma
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Luis Cipriani
 
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
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Regis Magalhães
 
Obtendo Informação Útil em Dados Semi-Estruturados da Web
Obtendo Informação Útil em Dados Semi-Estruturados da WebObtendo Informação Útil em Dados Semi-Estruturados da Web
Obtendo Informação Útil em Dados Semi-Estruturados da WebLuiz Matos
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSPledsifes
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34Mayara Fernandes
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoDavid Robert Camargo de Campos
 
Ferramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Webigorpimentel
 
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Leandro Borges
 

Similar to Web Crawlers (20)

PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Open Social
Open SocialOpen Social
Open Social
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
 
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
Alexandria: um Sistema de Sistemas para Publicação de Conteúdo Digital utiliz...
 
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
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
 
Obtendo Informação Útil em Dados Semi-Estruturados da Web
Obtendo Informação Útil em Dados Semi-Estruturados da WebObtendo Informação Útil em Dados Semi-Estruturados da Web
Obtendo Informação Útil em Dados Semi-Estruturados da Web
 
Web Sphere
Web SphereWeb Sphere
Web Sphere
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34
 
Web Services
Web ServicesWeb Services
Web Services
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
 
Ferramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Web
 
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
Do Gopher, Web Crawler, Google, pagerank, sitemaps, ontologia, ao Big Data, W...
 

Web Crawlers

  • 1. Web Crawlers Web Atual x Web Semântica Alberto Trindade Tavares
  • 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. 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. 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. 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. 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. 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. 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. 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. Crawlers para a web semântica Motivaçã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. Crawlers para a web semântica Linked Data:
  • 12. Crawlers para a web semântica Arquitetura geral dos crawlers para a Linked Data: 1. Obter URI da fila 2. Abrir conexão e buscar conteúdo 3. Processar e armazenar conteúdo 4. Extrair novos links e colocar na fila 5. Em intervalos definidos: escalar URIs na fila [Andreas Harth, Crawling and Querying Linked Data, 2010]
  • 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. 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. 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. 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. 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. Web atual x Web semântica: crawlers Crawler Web Open Tipo Plataforma Linguagem Formato das Semântica Source de Implem. Fontes GoogleBot Aplicativo Linux C++ HTML Scrapy Framework Windows/Linux Python HTML/XML Nutch Aplicativo Windows/Linux Java HTML LDSpider Aplicativo/API Windows/Linux Java RDF Slug Framework Windows/Linux Java RDF OntoBroker Aplicativo/API Windows Java HTML/RDF