1. O documento apresenta uma palestra sobre web mining e crawlers dada por Macaba Pedro. A palestra inclui uma introdução ao orador e sua formação acadêmica, uma breve introdução ao programa de mestrado MEISI na ULHT, e informações sobre crawlers incluindo conceito, processo, componentes e construção de um crawler.
3. Agenda
✓
1
Apresentação do Orador
2
Breve Introdução ao MEISI e a ULHT
3
Crawlers: Conceito, Processo e Componentes
4
Construção de um Crawler
5
Aspectos Funcionais
6
Conclusão e Referências
7
Questões
Macaba Pedro - 2011
3
4. Apresentação do Orador
Percurso Académico
1
Curso Médio de Ciências Exactas: Pré-Universitário de Luanda
2
Analista Programador de Informática: Instituto de Ensino Profissional Intensivo de Lisboa INEPI
3
Licenciatura em Informática: Instituto Superior de Tecnologias Avançadas de Lisboa ISTEC
4
Mestrado em Engenharia Informática e Sistemas de Informação: Universidade Lusófona de
Humanidades e Tecnologias - ULHT
5
Cursos Profissionais: NHK, Rumus...
Macaba Pedro - 2011
4
6. Antes dos Crawlers
Antevisão
A Recolha de Dados
1
No período anterior a
Web,
numa
Intranet
corporativa por ex., a
informação era colocada
manualmente sobre um
sistema de recuperação
de
Informação
(Information
Retrieval)
sendo
depois
disponibilizada
para
pesquisa.
Macaba Pedro - 2011
Desvantagens
2
Dificuldades na visita a
centenas de sites e
manualmente efectuar a
recolha das suas páginas
para constituir o engenho
de busca.
6
7. World Wide Web
Algumas Características
www
1
www
Maior repositório de
Informação do Mundo.
Os conteúdos das páginas
estão ligados por hyperlinks
a outras páginas da WWW.
A Informação não está
organizada.
Macaba Pedro - 2011
7
8. Cont.
Como obter a informação, analisar e organizar?
Como pesquisar nesta
network anárquica?
Macaba Pedro - 2011
Como Criar um Motor
de Busca eficiente?
Qual a topologia da
WWW?
8
9. Conceito & Utilidades
Web Crawler «» Crawlers
Programa ou script simples que metodicamente efectua o scan “crawls” à
paginas da Internet, indexando-as para uma base de dados providenciando
posteriormente rápidos resultados de pesquisa.
Web spider, web robot, bot, crawler, automatic indexer
Utilização mais associada aos motores de busca, com a função de:
Recolha de informação de formas a ter dados constantemente actualizados;
Criam cópia de todas as páginas visitadas, para processamento posterior pelos motores de
busca;
Google Bot, Yahoo! Slurp, MsnBot.
Utilizados para manutenção automática de tarefas num Web Site, pela
verificação dos links e a validação do código HTML.
Recolha de Spam.
Macaba Pedro - 2011
9
10. Conceito & Utilidades
Web Crawler «» Crawlers
Utilizados também pelos:
Linguistas
Análise textual, pela busca na Internet das palavras actualmente mais utilizadas
Comerciais
Determinar as tendências do mercado
Pode ser utilizado apenas uma única vez, para um determinado projecto.
Num motor de busca, poderão ser programados para periodicamente na
Internet perceber as mudanças significativas de páginas.
Num site com tráfego intenso ou dificuldades técnicas, o spider poderá ser
programado à informar tal situação e efectuar a visita novamente a
posterior.
Macaba Pedro - 2011
10
11. Web Crawling / Spidering
Processo e Componentes
Fila
1
Carrega um ou mais URLs numa
lista de páginas a serem indexadas.
Downloader
2
Geralmente
multithreaded,
programação em paralelo.
Parsing
3
Técnica de extrair conteúdo (what,
is, the... ) relevante de um
documento (HTML, XML, etc...).
Storage
4
Área de armazenamento.
Macaba Pedro - 2011
11
13. Web Crawling / Spidering
Processo e Componentes
Fila
1
Carrega um ou mais URLs numa
lista de páginas a serem indexadas.
Downloader
2
Geralmente
multithreaded,
programação em paralelo.
Parser - Crawlers
3
Segundo as especificações do
Downloader, conterá os dados das
páginas baixadas por este.
Storage
3
Área de armazenamento.
Macaba Pedro - 2011
12
14. Cont.
Passos para correr um crawler que busca todas as
páginas possíveis de um conjunto inicial de páginas
Carrega o
conjunto inicial
de URLs numa
lista de páginas
a serem
indexadas
Macaba Pedro - 2011
Corre o processo
até a concluir
Encontra uma
página não
indexada, busca e
guarda, extrai os
links e adiciona a
lista de páginas a
serem indexadas.
Termina o ciclo
caso o tempo
limite do crawler
for excedido ou
não existam mais
páginas não
indexadas.
13
15. Construção de um Crawler
Análise
Um crawler demora mais tempo a processar:
1.
O tempo para a busca numa página é baseado na largura de banda e
o carregamento no host.
2.
Nas páginas ainda não visitadas existirá a demora, pois consistirá na
captação do endereço IP e na pesquisa do DNS.
3.
Alguns hosts sobrecarregados podem demorar mais tempo a retornar um
pedido.
Para uma página, pode ser substancial, comparado ao tempo para
actualmente fazer o download da página.
Finalmente, o número de páginas não indexadas numa lista cresce
rapidamente num grande ambiente baseado na Web, oprimindo o
crawler.
Macaba Pedro - 2011
14
16. Construção de um Crawler
Desenho básico de um Crawler em paralelo
Macaba Pedro - 2011
15
17. Construção de um Crawler
Cont.
1
Múltiplos crawlers interagem com uma lista partilhada através de um gestor de
carregamento.
2
O gestor de carregamento marca os URLs localizados , assina-os para crawlers individuais
e adiciona novas páginas para a lista de URLs.
3
Cada crawler extrai os links de texto de uma Web Page e cria um novo conjunto de
páginas que podem ser adicionadas a lista.
4
Antes da adição do link, o Load Manager certifica-se da não existência de duplicação.
Macaba Pedro - 2011
16
18. Construção de um Crawler
Formato dos Links
1
Links relativos (sem o nome host) são convertidos para links absolutos.
2
Nome do protocolo – http para as páginas Web – em tamanho pequeno seguido do
hostname.
3
A utilização do hostname previne o Crawler de armazenar links duplicados do mesmo host
mesmo que os URLs não sejam idênticos.
4
5
Opcionalmente o número do porto, que por default será 80, quando não especificado.
O caminho do servidor. Deverá ser normalizado para controlar caminhos que apontem
para a mesma página.
Macaba Pedro - 2011
17
19. Lista de Páginas
URLs
Início
1
Muitos
crawlers
mantêm uma lista
de
páginas
já
indexadas ou não
numa base de
dados.
A
lista
é
inicialmente
carregada com um
conjunto
de
páginas com as
quais se iniciará a
busca.
Macaba Pedro - 2011
Execução
2
Um crawler sem
restrições na Web
poderá correr dias
ou até semanas.
Para que tal não
aconteça, deverá
ter instruções de
terminação.
Resultado
3
Um
crawler
terminará se todas
as páginas na lista
forem
indexadas
ou se o tempo de
execução
do
crawler atinge o
seu limite.
18
20. Armadilhas
Crawlers - Execução
»
Quando um crawler fica preso sobre um ciclo interminável. Ocorre quando o caminho se
direcciona a dois ou mais directórios que tenham páginas apontadas entre si.
»
Links simbólicos em directórios fonte; Dois directórios fonte Web com links simbólicos entre
si, formam um loop infinito de links.
«
Limitar o número de directórios no caminho de qualquer URL.
»
URLs com um grande número de caracteres extra.
»
Ciclo interminável de pedidos de informação de um servidor Web que o crawler é incapaz
de fornecer.
«
O servidor pode eventualmente terminar a conexão após várias tentativas sem sucesso
do mesmo crawler.
Macaba Pedro - 2011
19
21. Etiqueta de um Crawler
Formato de funcionamento
1
Um crawler deverá espalhar pedidos a múltiplos servidores para evitar sobrecarga de um
único servidor.
2
Algumas áreas do servidor Web disponíveis ao público, podem estar fora dos limites do
crawler.
3
Normalmente os servidores Web possuem um código de conduta opcional para os
crawlers que pode ser encontrado no seu directório raiz. O robots.txt.
4
Para o caso do robot.txt não ser encontrado no servidor, pressupõe-se que todas as
directorias são acessíveis para um crawler.
5
As páginas individuais podem ser excluídas de um crawler através de um robot metatag
no cabeçalho de uma página web.
Macaba Pedro - 2011
20
22. Gestão de um Crawler
Como perceber se determinada página sofreu alteração
1
2
3
4
A maior parte dos servidores web retorna um cabeçalho contendo o metadata que
descreve o conteúdo da página requisitada.
O metadata possue um selo de tempo da última modificação da página.
Um Crawler pode mover a página para a categoria das ”Menos frequentemente
visitadas”, caso não note alterações desde o últmo crawl.
O método para efectuar as visitas periódicas as páginas pode ser calculado pelo período entre
as modificações e tempo desde a última visita – Crawler rápido – Tempo, Notícias, Blogs.
5
As páginas que são raramente alteradas, serão menos visitadas. – Crawler lento.
6
O crawler elimina da lista de URLs, aqueles cujas páginas não tenham sido vistas na lista
de ocorrências em média 6 meses.
Macaba Pedro - 2011
21
24. Projecto Motor de Busca
http://www.daviddlewis.com/resources/testcollections/re
uters21578/
Linguagem de programação a escolha ((.NET),Phyton… +
PHP + Base de Dados) -> WampServer
25.
26. Conclusão
Com a expansão da Internet, o aumento exponencial de páginas
web e a constante mudança de informação, o método de web
crawling desempenha um papel preponderante na recolha de dados
e posterior disponibilização de resultados fiáveis.
Apresenta-se também, como o caminho que os motores de busca e
os utilizadores possuem para regularmente certificarem-se de que
as suas bases de dados encontram-se actualizadas.
Macaba Pedro - 2011
23