Estes slides oferecem uma introdução ao conceito de Máquinas de Busca e seu "coração", os Web Crawlers. É uma apresentação de 10 min., então não esperem nada de outro mundo. Dá apenas uma noção inicial.
No¸˜o de Search Engine
ca
Cadˆ o “Cadˆ?”
e e
Douglas Sandy Bonaf´
e
Universidade Federal de Itajub´ - UNIFEI
a
IESTI
16-10-2012
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 1 / 14
¿Qui´n soy yo?
e
Aluno de Engenharia da Computa¸˜o, pesquiso na ´rea de
ca a
Microeletrˆnica, metido a falar de mat´rias da ´rea de humanas como
o e a
Filosofia, Sociologia, Hist´ria, Teologia... Curto pocker, fazemos festas
o
medievais, churras, programas malucos, etc.
Figure: Um aventureiro maluco!!!
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 2 / 14
O que ´ uma Search Engine???
e
Uma Search Engine, ou motor de busca em nossa l´ ıngua mater (-hehe) ´e
um sistema de software projetado para encontrar informa¸˜es armazenadas
co
em um sistema computacional a partir de keywords. Mais corretamente se
distingue as Search Engine das bases de dados, pela diferen¸a que as S.E.
c
utilizam o conceito de Web Crawlers enquanto sites como o “Cadˆ?” e
apenas faziam uma query dentro da pr´pria base. Podemos estruturar a
o
Search Engine em trˆs funcionalidades b´sicas:
e a
Web Crawling
Indexa¸˜o
ca
Busca
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 3 / 14
Web Crawler - Rastreador
Figure: Darei uma no¸˜o inicial Web Crawler nesses 10 min.
ca
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 4 / 14
Web Crawler - Rastreador
Um web crawler ´ um programa que coleta conte´do da rede mundial de
e u
computadores (www). Ele navega pela web de uma forma met´dica eo
automatizada. Em outras palavras, ele ´ um “robˆ” que monta uma
e o
´rvore das p´ginas e encontra outras p´ginas iniciando por uma semente e
a a a
seguindo links para encontrar outras p´gias, e continua seguindo links
a
dentro destas p´ginas encontradas, encontrando novas p´ginas e assim por
a a
diante.
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 5 / 14
Web Crawler - Rastreador
Figure: Vis˜o Gr´fica de um Web Crawler
a a
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 6 / 14
Alguns Web Crawlers
DataparkSearch - mais usado para sistemas locais e intranet;
Wget - programa OpenSource usado para recuperar arquivos usando
os protocolos HTTP, HTTPS, FTP; Roda em linha de comando;
nativo na maioria das distribui¸˜es GNU/Linux e pode ser instalado
co
em qualquer sistema Unix-like j´ sendo tamb´m portado para
a e
ambientes MS Windows e OpenVMS.
JSpider - se define como uma Web Spider Engine (web crawler)
altamente configur´vel e customiz´vel 100 % JAVA
a a
Yahoo!Slurp - web crawler da Yahoo!
Googlebot - web crawler da Google
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 7 / 14
Chega de Papo! Quero ver c´digo!
o
Primeiramente, que linguagem usar? Particularmente, recomendo Python!
´ a
E pr´tica, sem stress, tipagem dinˆmica, Orientada a Objetos, e todo o
a
“bla-bla-bla” que vocˆs j´ est˜o cansados de ouvir! Use porque ´ t˜o f´cil
e a a e a a
quando dar Ctrl+F no seu navegador!
O Cora¸˜o da Search Engine
ca
start_link = page.findAll(’<a href=’)
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 8 / 14
Web Crawler - Rastreador
Ent˜o vamos ao menos programar um pedacinho dessa Web Crawler...
a
Primeiramente precisamos entender qual a estrutura de um Web Crawler:
Figure: Esquema b´sico de funcionamento de um Web Crawler
a
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 9 / 14
Chega de Papo! Quero ver c´digo!
o
Usaremos Python e sua biblioteca urlib2 que faz a conex˜o com os
a
protocolos HTTP, HTTPS, etc. Um grande problema da WWW chama-se
“falta de padr˜o”. Muitos “desenvolvedores” escrevem suas p´ginas web
a a
mal formatadas (porcamente) e isso dificulta o nosso trabalho. Felizmente
isso n˜o ´ problema. Basta usarmos o BeautifulSoup que ´ uma
a e e
biblioteca Python desenvolvida para projetos de resposta r´pida. Abaixo
a
segue um c´digo de algo util: um programa que lista todos os links da
o ´
p´gina inicial do Google.
a
Ent˜o a parte de buscar os links fica f´cil!
a a
import urllib2
from BeautifulSoup import BeautifulSoup
url = "http://www.google.com"
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 10 / 14
Chega de Papo! Quero ver c´digo!
o
Ent˜o a parte de buscar os links fica f´cil!
a a
request = urllib2.Request(url)
response = urllib2.urlopen(request)
document = response.read()
#normaliza o documento para que o mesmo seja acess´vel v
ı
soup = BeautifulSoup(document)
# retorna uma lista com todos os links do documento
links = soup.findAll(’a’)
for link in links:
print link[’href’]
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 11 / 14
And the Oscar goes to...
Acreditem
http://images.google.com.br/imghp?hl=pt-BR&tab=wi
http://video.google.com.br/?hl=pt-BR&tab=wv
http://maps.google.com.br/maps?hl=pt-BR&tab=wl
http://news.google.com.br/nwshp?hl=pt-BR&tab=wn
http://www.orkut.com/Home.aspx?hl=pt-BR&tab=w0
...
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 12 / 14
O Fim...
E de tanto me dizerem que eu falo mais de humanas que de Computa¸˜o,ca
resolvi criar uma ala de computa¸˜o tamb´m... Est´ no come¸o, com 2
ca e a c
artigos (Redes Neurais e Interfaces com Glade), mas aos poucos a coisa
vai tomar corpo...
Link do “Caf´, Circuitos e Bits”: http://veritatis.x10.mx/eng
e
Twitter: @dsbonafe
Facebook: Douglas Sandy Bonaf´ e
E-mail: dsbonafe@unifei.edu.br
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 13 / 14
O Fim...
Obrigado!
Douglas Sandy Bonaf´ (Universidade Federal de Itajub´ No¸˜o de Search Engine
e a - UNIFEI IESTI)
ca 16-10-2012 14 / 14