Como Criar Robôs de Busca para a Internet

31 March 2008 - 21:42                        

Eu programo e estudo freqüentemente robôs que fazem buscas em sites da Internet. Eles nada mais são do que programas de computador capazes de fazer o download e processamento de diversas páginas em pouco tempo. Uma das pessoas que mais me ensinaram sobre este assunto é o Bruno Gola, que conheci quando trabalhamos juntos em projetos open source.

Depois de muitos testes, erros, acertos e comparações, conclui que a forma mais eficiente de criar um Robô de Busca é fazendo sua divisão em três programas principais:

1. Download de Conteúdo

Nesta parte, é criado um software capaz de baixar todas as páginas do site buscado com conteúdo que seja relevante para o que se pretende fazer.

É importante que esteja bem claro o que se deseja buscar antes de criar um Robô, pois assim você sabe exatamente quais páginas deve baixar. Depois, você deve pensar em uma maneira eficiente de baixar todas estas páginas.

A maneira que eu considero menos eficiente, porém mais simples, é realizar o download de todas as páginas do site. Para fazer isto a cada página que você faz download você deve armazenar todos os links para onde ela aponta e entrar em todos os links que têm o domínio do site. Isto é na verdade a descrição de um Crawler: ele entra em uma página, captura links, entra neles, captura mais links, entra neles, captura mais ….. até ter entrado em todos os links, aí começa tudo de novo a partir do primeiro link, buscando conteúdo novo e links novos.

2. Análise do Conteúdo

Nesta seção, deve ser criado um software capaz de processar o conteúdo das páginas previamente baixadas. Normalmente, este programa alimenta alguma estrutura de armazenamento de dados a partir de estatísticas e elementos coletados.

Esta é uma parte mais trabalhosa pois requer algoritmos eficientes tanto para processar o conteúdo baixado quanto para alimentar o banco de dados.

Uma dica importante neste item é que muitas funções que realizam processamento ou troca de informações com banco de dados são muito utilizadas para diversos sites diferentes que estão sendo buscados. Como você tem que fazer um software analisador para cada site é interessante que você crie uma biblioteca de funções mais utilizadas que será compartilhada entre eles.

3. Visualização do Conteúdo

Esta é uma parte que envolve o conhecimento prévio do usuário da aplicação. Você deve pensar para quem está coletando estes dados e qual a melhor forma de apresentá-los. A partir do momento que você tem um banco de dados bem preenchido, basta apenas pensar na interface de visualização dos dados.

Se for uma aplicação aberta para qualquer pessoa, é muito provável que a interface de visualização seja uma página na web.

Esta divisão, além de ser bem eficiente é também de fácil manutenção pois permite alta modularização de aplicações. Comento com mais detalhes cada parte em posts futuros.

Categorias: Robôs de Busca |

Você pode reproduzi-lo! Indique apenas o Link!

Email    

Leia Artigos Relacionados



Você pode acompanhar os comentários deste artigo através do feed RSS 2.0 Você pode deixar um comentário ou, ou interligar ("trackback") com seu site.

AddThis Social Bookmark Button

9 Responses “Como Criar Robôs de Busca para a Internet”

  1. naoa entendi pois oque eu estou procurando e um robo movel que pode fazer as mesmas coisas que a pessoa tipo:
    assistir televisao
    caminhar
    beber
    e ate como possivel conversar

  2. entao sepossivel tente mandar uma planta de um robo pra eu montar me mande uma planta pello meu msn
    o meu msn e guzao1998@hotmail.com

  3. ricardo escreveu:

    Poxa Gustavo, além de completamente perdido você está vendo muita ficção cientifica hein?

    Então, gostaria de alguma dica de literatura, em portugues se possivel, sobre esses web bots, como criar um, etc.

    Vlw

  4. Claudio escreveu:

    Ola Boa Noite, Rafael qual o tipo de programação mais indicado para esta finalidade “Liguagem”…

    Obrigado

  5. alberto escreveu:

    pocha,na verdade para criar um robô vocÊ precisa ter um auto grau de estudo…um bom conhecimento na verdade eu tou tentando mais preciso aprender muito++++.

  6. Luis Andrade escreveu:

    Parabens pelo texto. Claro e objetivo! Não sou programador e estou a procura de um robo que possa identificar a citação à um determinado assunto (no meu caso nanotecnologia) em sites de instituições de ensino. Tens alguma dica? Saudações, Luís

  7. Rafael Barbolo Lopes escreveu:

    Pro pessoal que quer se informar mais sobre a implementação desses bots, eu sugiro conhecer a linguagem de programação Python. É muito simples de aprender e bastante eficiente para esta tarefa. Sugiro que veja um pouco sobre a biblioteca urllib: http://docs.python.org/library/urllib.html

    Luis Andrade, existem várias maneiras de fazer o que você precisa. Uma delas é usar a própria busca do google pelo termo “nanotecnologia” e filtrando os sites apenas para os quais você deseja obter resultados. O Google também fornece uma ferramente “Google Custom Search” que permite fazer algo nesse sentido em pouco tempo: http://code.google.com/apis/customsearch/

    Abraços

  8. Guw escreveu:

    Ola Rafael,

    O que vc me diz sobre sites seguros, como sites de grandes jornais. Mesmo com usuario e senhas de acesso, não consegui desenvolver nada eficaz em termos de robos. Você acha possivel? Como burlar os Robots.txt?

    Abraço

  9. Rafael Barbolo Lopes escreveu:

    Olá Guw,

    Se vc consegue acessar uma página com um navegador (ex: firefox), você consegue programar um aplicativo que acesse a página de maneira automatizada.

    Acessar uma página http, nada mais é que fazer uma requisição tcp. E servidores web devem ter uma porta aberta para essas conexões (normalmente porta 80).

    Que linguagem de programação vc usa?

    Se for python, eu sei que é possível modificar a urllib para ela não checar o Robots.txt, você também pode modificar o seu user-agent, simulando o firefox por exemplo.

    Eu já fiz isso e funcionou.

    Se quiser mais ideias e ajuda é só falar.

    Abraços

Deixe um comentário