Upload
alberto-trindade
View
3.995
Download
1
Embed Size (px)
DESCRIPTION
An overview of web crawlers, and a traditional web vs semantic web analysis.
Citation preview
Web CrawlersWeb 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 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]
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, [email protected], 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, [email protected], 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: 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