Como Criar Robôs de Busca para a Internet
31 March 2008 - 21:42 Crawler html java Programação Python Robô de Busca Search Engine Spy
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 |
Gostou deste Post?
Você pode reproduzi-lo! Indique apenas o Link!
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.
Assine o Feed
2 February 2009 - 18:41
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 February 2009 - 18:42
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
11 February 2009 - 17:49
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
29 March 2009 - 23:50
Ola Boa Noite, Rafael qual o tipo de programação mais indicado para esta finalidade “Liguagem”…
Obrigado
23 May 2009 - 19:05
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++++.
23 June 2009 - 13:42
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
26 June 2009 - 15:57
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
30 June 2009 - 15:47
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
30 June 2009 - 16:39
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