Web Crawlers

18
Web Crawlers Web Atual x Web Semântica Alberto Trindade Tavares

description

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

Transcript of Web Crawlers

Page 1: Web Crawlers

Web CrawlersWeb Atual x Web Semântica

Alberto Trindade Tavares

Page 2: Web Crawlers

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

Page 3: Web Crawlers

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.

Page 4: Web Crawlers

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.

Page 5: Web Crawlers

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.

Page 6: Web Crawlers

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>

Page 7: Web Crawlers

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]

Page 8: Web Crawlers

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]

Page 9: Web Crawlers

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]

Page 10: Web Crawlers

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.

Page 11: Web Crawlers

Crawlers para a web semântica

Linked Data:

Page 12: Web Crawlers

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]

Page 13: Web Crawlers

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/>

Page 14: Web Crawlers

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]

Page 15: Web Crawlers

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, [email protected], February 2006]

Page 16: Web Crawlers

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, [email protected], DATI Software Group, 2000]

Page 17: Web Crawlers

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.

Page 18: Web Crawlers

Web atual x Web semântica: crawlersCrawler Web

SemânticaOpen

SourceTipo Plataforma Linguagem

de Implem.Formato das

FontesGoogleBot 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