Noções de Search Engine
-
Upload
douglas-sandy-bonafe -
Category
Documents
-
view
349 -
download
0
description
Transcript of Noções de Search Engine
Nocao de Search EngineCade o “Cade?”
Douglas Sandy Bonafe
Universidade Federal de Itajuba - UNIFEIIESTI
16-10-2012
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 1 / 14
¿Quien soy yo?
Aluno de Engenharia da Computacao, pesquiso na area deMicroeletronica, metido a falar de materias da area de humanas comoFilosofia, Sociologia, Historia, Teologia... Curto pocker, fazemos festasmedievais, churras, programas malucos, etc.
Figure: Um aventureiro maluco!!!
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 2 / 14
O que e uma Search Engine???
Uma Search Engine, ou motor de busca em nossa lıngua mater (-hehe) eum sistema de software projetado para encontrar informacoes armazenadasem um sistema computacional a partir de keywords. Mais corretamente sedistingue as Search Engine das bases de dados, pela diferenca que as S.E.utilizam o conceito de Web Crawlers enquanto sites como o “Cade?”apenas faziam uma query dentro da propria base. Podemos estruturar aSearch Engine em tres funcionalidades basicas:
Web Crawling
Indexacao
Busca
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 3 / 14
Web Crawler - Rastreador
Figure: Darei uma nocao inicial Web Crawler nesses 10 min.
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 4 / 14
Web Crawler - Rastreador
Um web crawler e um programa que coleta conteudo da rede mundial decomputadores (www). Ele navega pela web de uma forma metodica eautomatizada. Em outras palavras, ele e um “robo” que monta umaarvore das paginas e encontra outras paginas iniciando por uma semente eseguindo links para encontrar outras pagias, e continua seguindo linksdentro destas paginas encontradas, encontrando novas paginas e assim pordiante.
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 5 / 14
Web Crawler - Rastreador
Figure: Visao Grafica de um Web Crawler
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 6 / 14
Alguns Web Crawlers
DataparkSearch - mais usado para sistemas locais e intranet;
Wget - programa OpenSource usado para recuperar arquivos usandoos protocolos HTTP, HTTPS, FTP; Roda em linha de comando;nativo na maioria das distribuicoes GNU/Linux e pode ser instaladoem qualquer sistema Unix-like ja sendo tambem portado paraambientes MS Windows e OpenVMS.
JSpider - se define como uma Web Spider Engine (web crawler)altamente configuravel e customizavel 100 % JAVA
Yahoo!Slurp - web crawler da Yahoo!
Googlebot - web crawler da Google
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 7 / 14
Chega de Papo! Quero ver codigo!
Primeiramente, que linguagem usar? Particularmente, recomendo Python!E pratica, sem stress, tipagem dinamica, Orientada a Objetos, e todo o“bla-bla-bla” que voces ja estao cansados de ouvir! Use porque e tao facilquando dar Ctrl+F no seu navegador!
O Coracao da Search Engine
start_link = page.findAll(’<a href=’)
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 8 / 14
Web Crawler - Rastreador
Entao vamos ao menos programar um pedacinho dessa Web Crawler...Primeiramente precisamos entender qual a estrutura de um Web Crawler:
Figure: Esquema basico de funcionamento de um Web Crawler
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 9 / 14
Chega de Papo! Quero ver codigo!
Usaremos Python e sua biblioteca urlib2 que faz a conexao com osprotocolos HTTP, HTTPS, etc. Um grande problema da WWW chama-se“falta de padrao”. Muitos “desenvolvedores” escrevem suas paginas webmal formatadas (porcamente) e isso dificulta o nosso trabalho. Felizmenteisso nao e problema. Basta usarmos o BeautifulSoup que e umabiblioteca Python desenvolvida para projetos de resposta rapida. Abaixosegue um codigo de algo util: um programa que lista todos os links dapagina inicial do Google.
Entao a parte de buscar os links fica facil!
import urllib2
from BeautifulSoup import BeautifulSoup
url = "http://www.google.com"
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 10 / 14
Chega de Papo! Quero ver codigo!
Entao a parte de buscar os links fica facil!
request = urllib2.Request(url)
response = urllib2.urlopen(request)
document = response.read()
#normaliza o documento para que o mesmo seja acessıvel via objetos
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 Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 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 Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 12 / 14
O Fim...
E de tanto me dizerem que eu falo mais de humanas que de Computacao,resolvi criar uma ala de computacao tambem... Esta no comeco, com 2artigos (Redes Neurais e Interfaces com Glade), mas aos poucos a coisavai tomar corpo...Link do “Cafe, Circuitos e Bits”: http://veritatis.x10.mx/engTwitter: @dsbonafeFacebook: Douglas Sandy BonafeE-mail: [email protected]
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 13 / 14
O Fim...
Obrigado!
Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 14 / 14