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 | 38 Comentários »