Web Crawlers Open Source
Heitor de Souza Ganzeli
Analista de Projetos do nic.br
O Comitê Gestor da Internet no Brasil
(CGI.br) foi criado pela Portaria Interministerial
nº 147, de 31 de maio de 1995, alterada pelo
Decreto Presidencial nº 4.829,
de 3 de setembro de 2003,
para coordenar e integrar todas as iniciativas de
serviços Internet no país, promovendo a qualidade
técnica, a inovação e a disseminação dos
serviços ofertados.
O NIC.br é uma instituição
sem fins de lucro, que funciona
como braço executivo do CGI.br
Nomes de
domínio .br
Números IP
Segurança
na Internet
brasileira
Indicadores
Infraestrutura
sobre uso das PTTs
TICs
IPv6
SIMET = medição
de qualidade
Estudo da Web
Zappiens
Padrões Web
Crawlers
• INTRODUÇÃO
• CRAWLERS
Projetos Relacionados
Introdução
Agenda
• PROJETOS RELACIONADOS
Funcionamento
Relacionados
Projetos
Crawlers
Introdução
Introdução
Crawlers
• Iniciado em 2009
• Publicação de dados
do domínio .gov.br
em 2010
Funcionamento
Relacionados
Projetos
Introdução
Projeto TIC Web
• http://www.ceptro.br/
CEPTRO/MenuCEP
TROSPCensoWeb
Funcionamento
Relacionados
Projetos
Crawlers
Introdução
O que é um Web crawler
• Programa que navega de forma
automática e ordenada a Web
• Alguns sinônimos:
• Spider
• Bots
• Robots
• indexadores
• Buscadores
Ranking
Interface de
usuário
Funcionamento
Relacionados
Projetos
Crawlers
Introdução
Aplicações
Web
Broker
Indexador
Crawlers
Índice
Servidores
• Buscadores
Ranking
Interface de
usuário
Funcionamento
Relacionados
Projetos
Crawlers
Introdução
Aplicações
Web
Broker
Indexador
Crawlers
Índice
Servidores
Funcionamento
Relacionados
Projetos
Crawlers
Introdução
Como Funciona
Seleção
Lista
Inicial
Extração
de links
Download
Funcionamento
Relacionados
Projetos
Crawlers
Introdução
Limitações
senha
Funcionamento
Relacionados
Projetos
Crawlers
Introdução
Desafios
•
•
•
•
•
Tamanho
Obsolescência
Qualidade
Uso eficiente de recursos
Controle Distribuído
Funcionamento
Relacionados
Projetos
Crawlers
Introdução
Alguns exemplos de web crawler Open source
•
•
•
•
Wire
Heritrix
Wget
Nutch
Projetos Relacionados
Crawlers
Crawlers
WIRE
Introdução
Projetos Relacionados
Crawlers
Introdução
Características
• Desenvolvido pelo CWR
• Cunho acadêmico
• Escalável
• C/C++
• Altamente configurável
• Foco em análise dos dados
Introdução
Arquitetura
Projetos Relacionados
Crawlers
Manager
Seeder
Base
de
dados
Gatherer
Harvester
Projetos Relacionados
Crawlers
Introdução
Exemplo de configuração
• Arquivo XML
• Configuração centralizada
Projetos Relacionados
Crawlers
Introdução
Exemplo de execução
export
WIRE_CONF=/media/drive2/teste/sample.conf
wire-bot-reset
wire-bot-seeder --start
/media/drive2/teste/list
wire-bot-run 5
Projetos Relacionados
Crawlers
Introdução
Exemplo de execução
Projetos Relacionados
Crawlers
Introdução
WIRE-NIC
• Algumas correções:
• Melhora do parsening de páginas
• Suporte a HTTP1.1
• Melhora na identificação do encoding das
páginas
• Correção de alguns bugs de execução
http://sf.net/projects/wire-nic
Projetos Relacionados
Crawlers
Introdução
Problemas
• Relativamente lento
• Storage único
• Difícil de ser testado
• Arquitetura unithead
• Antigo
Projetos Relacionados
Crawlers
Crawlers
GNU WGET
Introdução
Projetos Relacionados
Crawlers
Introdução
Características
• Simples
• Linha de comando
• Download sequencial
• Utiliza sistema de arquivos da máquina
Projetos Relacionados
Crawlers
Introdução
Controles de básicos
• Limite de profundidade
• Lista de domínios
• Tipos de arquivos baixados
• Tempo entre downloads
• Substituir links
Projetos Relacionados
Crawlers
Introdução
Alguns exemplos
• Baixar site:
wget –r www.nic.br
Projetos Relacionados
Crawlers
Introdução
Alguns exemplos
• Baixar site:
wget –r www.nic.br
Projetos Relacionados
Crawlers
Introdução
Alguns exemplos
• Adicionar delay:
wget –r –w 2 www.nic.br
Projetos Relacionados
Crawlers
Introdução
Alguns exemplos
• Baixar apenas páginas:
wget –r –w 2 –A
.html,.htm,.php www.nic.br
Projetos Relacionados
Crawlers
Introdução
Alguns exemplos
Projetos Relacionados
Crawlers
Introdução
Alguns exemplos
Projetos Relacionados
Crawlers
Introdução
Alguns exemplos
• Baixar apenas páginas:
wget -r -w 2 -R
.gif,.png,.jpeg www.nic.br
Projetos Relacionados
Crawlers
Crawlers
HERITRIX
Introdução
Projetos Relacionados
Crawlers
Introdução
Características
• Internet Archive
• Java
• Componentes intercambiáveis
• Scopo
• Frontier – Gerenciador
• Process Chains
Introdução
Arquitetura
Interface Web
Requisição de Crawling
Projetos Relacionados
Crawlers
Controlador
Frontier
Nova URI
URIs a
serem
executadas
URIs já
incluídas
Adiciona novas URIs
Conclui URI
Process Chain
Projetos Relacionados
Crawlers
Introdução
Problemas
• Difícil de ser configurado
• Não se recupera bem de falhas
• Fornece poucas ferramentas de análise
Projetos Relacionados
Crawlers
Introdução
Exemplo de execução
Projetos Relacionados
Crawlers
Crawlers
APACHE NUTCH
Introdução
Projetos Relacionados
Crawlers
Introdução
Características
•
•
•
•
•
Apache foundation
Parte do projeto Apache Solr
Alta performace em clusters com hadoop
Robusto
Escalavel
Projetos Relacionados
Crawlers
Introdução
Arquitetura
Injetor
Gerador
Buscador
indexador
Base de
Crawling
Base de
links
Atualiza
repositório
Inversot de links
Filtros, normalizadores
parser
Projetos Relacionados
Crawlers
Introdução
Exemplos de Execução
Projetos Relacionados
Projetos Relacionados
Crawlers
Introdução
Projetos Relacionados
Crawlers
Introdução
O ASA
http://asa.nic.br
Projetos Relacionados
Crawlers
Introdução
Projeto Top Sites
• http://labs.ceptro.br/topsites
• Estatísticas sobre a lista dos top 1 milhão
sites do Alexa
Projetos Relacionados
Crawlers
Introdução
Projeto BR Sites
• http://labs.ceptro.br/brsites
• Estatísticas sobre lista do .br baseada em
consultas ao DNS do registro.br
• Análise periódica de domínios específicos
Projetos Relacionados
Crawlers
Introdução
TIC Web
• Como analisar o .com.br
Crawlers
Relacionados Motivação
Sistema
ProjetosFuncionamento
Introdução
Obrigado !
Perguntas?
•
Contatos:
– [email protected][email protected][email protected]
Crawlers
Relacionados Motivação
Sistema
ProjetosFuncionamento
Introdução
referências
–
http://labs.ceptro.br/topsites
–
http://labs.ceptro.br/brsites
–
http://asa.nic.br
–
http://sf.net/projects/wire-nic
–
https://webarchive.jira.com/wiki/display/Heritrix/Heritrix
–
http://nutch.apache.org/
–
http://www.gnu.org/software/wget/manual/wget.html
–
https://webarchive.jira.com/wiki/download/attachments/5441/Mohr-etal-2004.pdf
–
Distributed WR tutorial – Ricardo Baeza-yates
–
http://2010.berlinbuzzwords.de/sites/2010.berlinbuzzwords.de/files/bia
lecki_bbuzz2010.pdf
–
http://wiki.apache.org/nutch/Presentations
Download

Tendências Web - ASA