Upload
nobre-pedro
View
289
Download
1
Embed Size (px)
DESCRIPTION
Como pesquisar na WWW? Como Criar um Motor de Busca eficiente? Qual a topologia da WWW?
Citation preview
Palestrante: Macaba Pedro
Bolseiro
01/09/2011
Web Mining
Macaba Pedro
2011
Agenda
3
Apresentação do Orador
Questões
Crawlers: Conceito, Processo e Componentes
Aspectos Funcionais
Breve Introdução ao MEISI e a ULHT
Construção de um Crawler
Conclusão e Referências
✓
7
6
5
4
3
2
1
Macaba Pedro - 2011
Curso Médio de Ciências Exactas: Pré-Universitário de Luanda
Mestrado em Engenharia Informática e Sistemas de Informação: Universidade Lusófona de
Humanidades e Tecnologias - ULHT
Cursos Profissionais: NHK, Rumus...
Analista Programador de Informática: Instituto de Ensino Profissional Intensivo de Lisboa -
INEPI
Licenciatura em Informática: Instituto Superior de Tecnologias Avançadas de Lisboa -
ISTEC
Macaba Pedro - 2011 4
Percurso Académico
Apresentação do Orador
1
2
3
4
5
Breve Introdução a ULHT e ao MEISI
Macaba Pedro - 2011 5
Antevisão
Antes dos Crawlers
Dificuldades na visita a
centenas de sites e
manualmente efectuar a
recolha das suas páginas
para constituir o engenho
de busca.
Desvantagens
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.
A Recolha de Dados
Macaba Pedro - 2011 6
1 2
Algumas Características
World Wide Web
www
Maior repositório de
Informação do Mundo.
www
Macaba Pedro - 2011 7
1
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 8
Cont.
Como obter a informação, analisar e organizar?
Como pesquisar nesta network anárquica?
Como Criar um Motor de Busca eficiente?
Qual a topologia da WWW?
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.
Conceito & UtilidadesWeb Crawler «» Crawlers
9Macaba Pedro - 2011
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.
Conceito & UtilidadesWeb Crawler «» Crawlers
10Macaba Pedro - 2011
Processo e ComponentesWeb Crawling / Spidering
Carrega um ou mais URLs numa
lista de páginas a serem indexadas.
Fila
Geralmente multithreaded,
programação em paralelo.
Downloader
3
Técnica de extrair conteúdo (what,
is, the... ) relevante de um
documento (HTML, XML, etc...).
Parsing
2
1
4Área de armazenamento.
Storage
11Macaba Pedro - 2011
import urllib2
url = "http://www.google.com"
request = urllib2.Request(url)
response = urllib2.urlopen(request)
document = response.read()
print document
Downloader com uma fila simples
Processo e ComponentesWeb Crawling / Spidering
Carrega um ou mais URLs numa
lista de páginas a serem indexadas.
Fila
Geralmente multithreaded,
programação em paralelo.
Downloader
3Segundo as especificações do
Downloader, conterá os dados das
páginas baixadas por este.
Parser - Crawlers
2
1
3Área de armazenamento.
Storage
12Macaba Pedro - 2011
Macaba Pedro - 2011 13
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
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 crawlerfor excedido ou
não existam mais páginas não indexadas.
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.
Alguns hosts sobrecarregados podem demorar mais tempo a retornar um
pedido.
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.
Para uma página, pode ser substancial, comparado ao tempo para
actualmente fazer o download da página.
3. Finalmente, o número de páginas não indexadas numa lista cresce
rapidamente num grande ambiente baseado na Web, oprimindo o
crawler.
Construção de um CrawlerAnálise
14Macaba Pedro - 2011
Construção de um CrawlerDesenho básico de um Crawler em paralelo
15Macaba Pedro - 2011
Construção de um CrawlerCont.
Múltiplos crawlers interagem com uma lista partilhada através de um gestor de
carregamento.
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.
O gestor de carregamento marca os URLs localizados , assina-os para crawlers individuais
e adiciona novas páginas para a lista de URLs.
Antes da adição do link, o Load Manager certifica-se da não existência de duplicação.
1
2
3
4
16Macaba Pedro - 2011
Construção de um CrawlerFormato dos Links
Links relativos (sem o nome host) são convertidos para links absolutos.
A utilização do hostname previne o Crawler de armazenar links duplicados do mesmo host
mesmo que os URLs não sejam idênticos.
O caminho do servidor. Deverá ser normalizado para controlar caminhos que apontem
para a mesma página.
Nome do protocolo – http para as páginas Web – em tamanho pequeno seguido do
hostname.
Opcionalmente o número do porto, que por default será 80, quando não especificado.
1
2
3
4
5
17Macaba Pedro - 2011
URLsLista de Páginas
Macaba Pedro - 2011 18
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.
ExecuçãoInício
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.
Resultado
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.
321
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.
Limitar o número de directórios no caminho de qualquer URL.
Ciclo interminável de pedidos de informação de um servidor Web que o crawler é incapaz
de fornecer.
Links simbólicos em directórios fonte; Dois directórios fonte Web com links simbólicos entre
si, formam um loop infinito de links.
URLs com um grande número de caracteres extra.
O servidor pode eventualmente terminar a conexão após várias tentativas sem sucesso
do mesmo crawler.
Macaba Pedro - 2011 19
Crawlers - ExecuçãoArmadilhas
»
»
«
»
»
«
Um crawler deverá espalhar pedidos a múltiplos servidores para evitar sobrecarga de um
único servidor.
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.
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.
Algumas áreas do servidor Web disponíveis ao público, podem estar fora dos limites do
crawler.
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.
Macaba Pedro - 2011 20
Formato de funcionamento
Etiqueta de um Crawler
1
2
3
4
5
A maior parte dos servidores web retorna um cabeçalho contendo o metadata que
descreve o conteúdo da página requisitada.
Um Crawler pode mover a página para a categoria das ”Menos frequentemente
visitadas”, caso não note alterações desde o últmo crawl.
As páginas que são raramente alteradas, serão menos visitadas. – Crawler lento.
O metadata possue um selo de tempo da última modificação da página.
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.
Macaba Pedro - 2011 21
Como perceber se determinada página sofreu alteraçãoGestão de um Crawler
1
2
3
4
5
6O 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.
Crawlers - MEISI 23
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
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.
Conclusão
Macaba Pedro - 2011 23
• http://www.wisegeek.com/what-is-a-web-crawler.htm
• http://herberthamaral.com/2010/02/criando-web-crawlers-em-
python-parte-i/
• http://www.sciencedaily.com/articles/w/web_crawler.htm
• http://pt.wikipedia.org/wiki/Anexo:Lista_de_exemplos_de_codigo_Py
thon
• htp://java-source.net/open-source/crawlers
• htp://crawler.archive.org/
• http://www.marketingdebusca.com.br/robots-txt/
Referências
Macaba Pedro - 2011 24