Palestrante: Macaba Pedro
Bolseiro
01/09/2011
Web Mining
Macaba Pedro
2011
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
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
Breve Introdução a ULHT e ao MEISI

Macaba Pedro - 2011

5
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
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
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
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
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
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
Downloader com uma fila simples
import urllib2
url = "http://www.google.com"
request = urllib2.Request(url)
response = urllib2.urlopen(request)
document = response.read()
print document
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
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
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
Construção de um Crawler
Desenho básico de um Crawler em paralelo

Macaba Pedro - 2011

15
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
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
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
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
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
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
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
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
Referências
• http://www.wisegeek.com/what-is-a-web-crawler.htm
• http://herberthamaral.com/2010/02/criando-web-crawlers-empython-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/

Macaba Pedro - 2011

24
Web - Crawlers

Web - Crawlers

  • 1.
  • 2.
  • 3.
    Agenda ✓ 1 Apresentação do Orador 2 BreveIntroduçã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 PercursoAcadé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
  • 5.
    Breve Introdução aULHT e ao MEISI Macaba Pedro - 2011 5
  • 6.
    Antes dos Crawlers Antevisão ARecolha 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 AlgumasCaracterí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 ainformaçã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 WebCrawler «» 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 WebCrawler «» 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
  • 12.
    Downloader com umafila simples import urllib2 url = "http://www.google.com" request = urllib2.Request(url) response = urllib2.urlopen(request) document = response.read() print document
  • 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 correrum 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 umCrawler 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 umCrawler Desenho básico de um Crawler em paralelo Macaba Pedro - 2011 15
  • 17.
    Construção de umCrawler 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 umCrawler 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êmuma 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 » Quandoum 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 umCrawler 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 umCrawler 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
  • 23.
  • 24.
    Projecto Motor deBusca http://www.daviddlewis.com/resources/testcollections/re uters21578/ Linguagem de programação a escolha ((.NET),Phyton… + PHP + Base de Dados) -> WampServer
  • 26.
    Conclusão  Com aexpansã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
  • 27.
    Referências • http://www.wisegeek.com/what-is-a-web-crawler.htm • http://herberthamaral.com/2010/02/criando-web-crawlers-empython-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/ Macaba Pedro - 2011 24