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

Noções de Search Engine

  • 1.
    No¸˜o de SearchEngine 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
  • 2.
    ¿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
  • 3.
    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
  • 4.
    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
  • 5.
    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
  • 6.
    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
  • 7.
    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
  • 8.
    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
  • 9.
    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
  • 10.
    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
  • 11.
    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
  • 12.
    And the Oscargoes 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
  • 13.
    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
  • 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