SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
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 Mining: Crawlers e Construção de um Motor de Busca

Mais conteúdo relacionado

Destaque

Curso YaCy Mecanismo de Busca de Código Aberto
Curso YaCy Mecanismo de Busca de Código AbertoCurso YaCy Mecanismo de Busca de Código Aberto
Curso YaCy Mecanismo de Busca de Código AbertoJulio Della Flora
 
Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonÁlvaro Justen
 
Scraping for fun and glory
Scraping for fun and gloryScraping for fun and glory
Scraping for fun and gloryitalomaia
 
Java Web Scraping
Java Web ScrapingJava Web Scraping
Java Web ScrapingSumant Raja
 
Desbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlersDesbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlersJoão Gabriel Lima
 
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoRaspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoFernando Macedo
 
Aula 01 - Recuperação da Informação
Aula 01 - Recuperação da InformaçãoAula 01 - Recuperação da Informação
Aula 01 - Recuperação da InformaçãoNilton Heck
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 

Destaque (12)

LOCKSS Como funciona 2007
LOCKSS Como funciona 2007LOCKSS Como funciona 2007
LOCKSS Como funciona 2007
 
Curso YaCy Mecanismo de Busca de Código Aberto
Curso YaCy Mecanismo de Busca de Código AbertoCurso YaCy Mecanismo de Busca de Código Aberto
Curso YaCy Mecanismo de Busca de Código Aberto
 
Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI Python
 
Scraping by examples
Scraping by examplesScraping by examples
Scraping by examples
 
Scraping for fun and glory
Scraping for fun and gloryScraping for fun and glory
Scraping for fun and glory
 
Java Web Scraping
Java Web ScrapingJava Web Scraping
Java Web Scraping
 
Web crawler
Web crawlerWeb crawler
Web crawler
 
Desbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlersDesbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlers
 
Scraping
ScrapingScraping
Scraping
 
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoRaspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
 
Aula 01 - Recuperação da Informação
Aula 01 - Recuperação da InformaçãoAula 01 - Recuperação da Informação
Aula 01 - Recuperação da Informação
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 

Semelhante a Web Mining: Crawlers e Construção de um Motor de Busca

PHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHPPHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHPFlávio Lisboa
 
Melhores Praticas de Busca WebSphere Portal 8
Melhores Praticas de Busca WebSphere Portal 8Melhores Praticas de Busca WebSphere Portal 8
Melhores Praticas de Busca WebSphere Portal 8Érick W. M. Vidal
 
Índices e Rastejamento na Web
Índices e Rastejamento na WebÍndices e Rastejamento na Web
Índices e Rastejamento na WebAlexandre Duarte
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioFernando Palma
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSPledsifes
 
Buscas no IBM WebSphere Portal
Buscas no IBM WebSphere PortalBuscas no IBM WebSphere Portal
Buscas no IBM WebSphere Portalrodrigoareis
 
Html - capitulo 04
Html - capitulo 04Html - capitulo 04
Html - capitulo 04Alvaro Gomes
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATALeonardo Dias
 
Boas práticas com Web Services
Boas práticas com Web ServicesBoas práticas com Web Services
Boas práticas com Web ServicesEvaldo Junior
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...Thiago Dieb
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 

Semelhante a Web Mining: Crawlers e Construção de um Motor de Busca (20)

PHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHPPHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHP
 
Melhores Praticas de Busca WebSphere Portal 8
Melhores Praticas de Busca WebSphere Portal 8Melhores Praticas de Busca WebSphere Portal 8
Melhores Praticas de Busca WebSphere Portal 8
 
JavaEE
JavaEEJavaEE
JavaEE
 
Índices e Rastejamento na Web
Índices e Rastejamento na WebÍndices e Rastejamento na Web
Índices e Rastejamento na Web
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 
AJAX
AJAXAJAX
AJAX
 
Copy of trabalho de redes
Copy of trabalho de redesCopy of trabalho de redes
Copy of trabalho de redes
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Buscas no IBM WebSphere Portal
Buscas no IBM WebSphere PortalBuscas no IBM WebSphere Portal
Buscas no IBM WebSphere Portal
 
Html - capitulo 04
Html - capitulo 04Html - capitulo 04
Html - capitulo 04
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 
Boas práticas com Web Services
Boas práticas com Web ServicesBoas práticas com Web Services
Boas práticas com Web Services
 
Curso de Pesquisa na Web
Curso de Pesquisa na WebCurso de Pesquisa na Web
Curso de Pesquisa na Web
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
1409243945064
14092439450641409243945064
1409243945064
 
Desenvolvimento web produtivo
Desenvolvimento web produtivoDesenvolvimento web produtivo
Desenvolvimento web produtivo
 
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
TDC 2017 SP - NoSQL - Sistema de busca na administração pública, com MongoDb ...
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 

Mais de Nobre Pedro

A lei da adição e do respeito
A lei da adição e do respeitoA lei da adição e do respeito
A lei da adição e do respeitoNobre Pedro
 
O papel do professor no sucesso escolar
O papel do professor no sucesso escolarO papel do professor no sucesso escolar
O papel do professor no sucesso escolarNobre Pedro
 
A Importância da Internet no Evangelho
A Importância da Internet no EvangelhoA Importância da Internet no Evangelho
A Importância da Internet no EvangelhoNobre Pedro
 
Cloud computing e serviços web 2014
Cloud computing e serviços web   2014Cloud computing e serviços web   2014
Cloud computing e serviços web 2014Nobre Pedro
 
Personalized Sensing System
Personalized Sensing SystemPersonalized Sensing System
Personalized Sensing SystemNobre Pedro
 
A internet e a evangelização
A internet e a evangelizaçãoA internet e a evangelização
A internet e a evangelizaçãoNobre Pedro
 
Services on Opportunistic Networking
Services on Opportunistic NetworkingServices on Opportunistic Networking
Services on Opportunistic NetworkingNobre Pedro
 
Cloud computing e serviços web
Cloud computing e serviços webCloud computing e serviços web
Cloud computing e serviços webNobre Pedro
 

Mais de Nobre Pedro (8)

A lei da adição e do respeito
A lei da adição e do respeitoA lei da adição e do respeito
A lei da adição e do respeito
 
O papel do professor no sucesso escolar
O papel do professor no sucesso escolarO papel do professor no sucesso escolar
O papel do professor no sucesso escolar
 
A Importância da Internet no Evangelho
A Importância da Internet no EvangelhoA Importância da Internet no Evangelho
A Importância da Internet no Evangelho
 
Cloud computing e serviços web 2014
Cloud computing e serviços web   2014Cloud computing e serviços web   2014
Cloud computing e serviços web 2014
 
Personalized Sensing System
Personalized Sensing SystemPersonalized Sensing System
Personalized Sensing System
 
A internet e a evangelização
A internet e a evangelizaçãoA internet e a evangelização
A internet e a evangelização
 
Services on Opportunistic Networking
Services on Opportunistic NetworkingServices on Opportunistic Networking
Services on Opportunistic Networking
 
Cloud computing e serviços web
Cloud computing e serviços webCloud computing e serviços web
Cloud computing e serviços web
 

Web Mining: Crawlers e Construção de um Motor de Busca

  • 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
  • 5. Breve Introdução a ULHT e ao MEISI Macaba Pedro - 2011 5
  • 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
  • 12. 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
  • 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
  • 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