28
Palestrante: Macaba Pedro Bolseiro 01/09/2011

Web - Crawlers

Embed Size (px)

DESCRIPTION

Como pesquisar na WWW? Como Criar um Motor de Busca eficiente? Qual a topologia da WWW?

Citation preview

Page 1: Web - Crawlers

Palestrante: Macaba Pedro

Bolseiro

01/09/2011

Page 2: Web - Crawlers

Web Mining

Macaba Pedro

2011

Page 3: Web - Crawlers

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

Page 4: Web - Crawlers

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

Page 5: Web - Crawlers

Breve Introdução a ULHT e ao MEISI

Macaba Pedro - 2011 5

Page 6: Web - Crawlers

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

Page 7: Web - Crawlers

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.

Page 8: Web - Crawlers

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?

Page 9: Web - 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.

Conceito & UtilidadesWeb Crawler «» Crawlers

9Macaba Pedro - 2011

Page 10: Web - 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.

Conceito & UtilidadesWeb Crawler «» Crawlers

10Macaba Pedro - 2011

Page 11: Web - Crawlers

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

Page 12: Web - Crawlers

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

Page 13: Web - Crawlers

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

Page 14: Web - Crawlers

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.

Page 15: Web - Crawlers

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

Page 16: Web - Crawlers

Construção de um CrawlerDesenho básico de um Crawler em paralelo

15Macaba Pedro - 2011

Page 17: Web - Crawlers

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

Page 18: Web - Crawlers

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

Page 19: Web - Crawlers

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

Page 20: Web - Crawlers

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

»

»

«

»

»

«

Page 21: Web - Crawlers

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

Page 22: Web - Crawlers

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.

Page 23: Web - Crawlers

Crawlers - MEISI 23

Page 24: Web - Crawlers

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

Page 25: Web - Crawlers
Page 26: Web - Crawlers

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

Page 27: Web - Crawlers

• 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

Page 28: Web - Crawlers