noções de search engine

14
No¸c˜ ao de Search Engine Cadˆ e o “Cadˆ e?” Douglas Sandy Bonaf´ e Universidade Federal de Itajub´ a - UNIFEI IESTI 16-10-2012 Douglas Sandy Bonaf´ e (Universidade Federal de Itajub´ No¸c˜ ao de Search Engine 16-10-2012 1 / 14

Upload: douglas-sandy-bonafe

Post on 05-Jul-2015

349 views

Category:

Documents


0 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: 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

Page 2: Noções de Search Engine

¿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

Page 3: Noções de Search Engine

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

Page 4: Noções de Search Engine

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

Page 5: Noções de Search Engine

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

Page 6: Noções de Search Engine

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

Page 7: Noções de Search Engine

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

Page 8: Noções de Search Engine

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

Page 9: Noções de Search Engine

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

Page 10: Noções de Search Engine

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

Page 11: Noções de Search Engine

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

Page 12: Noções de Search Engine

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

Page 13: Noções de Search Engine

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

Page 14: Noções de Search Engine

O Fim...

Obrigado!

Douglas Sandy Bonafe (Universidade Federal de Itajuba - UNIFEI IESTI)Nocao de Search Engine 16-10-2012 14 / 14