Também conhecido como Robot ou Spider, o Web Crawler é um programa que navega por toda a rede de maneira automática. Este tipo de programa é utilizado pelos mecanismos de busca a fim de criar uma cópia atualizada de todas as páginas visitadas. Estas páginas serão posteriormente processadas através do processo de indexação para possibilitar buscas mais rápidas.
Os Web Crawlers também podem ser usados na tarefa de manutenção de uma página, como checagem de links, validação de código HTML e muito utilizado também para conseguir armazenar algumas informações como endereços de e-mail. ( Geralmente para SPAM ).
Este software, em geral precisa de uma semente. Uma semente é uma lista de endereços a serem visitados. Conforme o crawler visita estes endereços, todos os hyperlinks são identificados e adicionados à lista de endereços a serem visitados. Sabemos que estamos lidando com um volume muito grande de dados e também uma alta taxa de mudança nestes dados. Portanto o programa deve priorizar seus downloads, já que no momento em que uma página é armazenada, é bastante provável que ela esteja sendo atualizada. As URLs armazenadas devem ser então visitados de acordo com um conjunto de políticas.O comportamento de um Web Crawler é o resultado de uma combinação das políticas:
· Política de Seleção - decide quais páginas terão download realizado.
· Política de Revisitação - Quando verificar mudanças ocorridas nas páginas.
· Política de Cordialidade - Como evitar o overloading de websites.
· Política de Paralelização - Como coordenar web crawlers distribuídos.
Política de Seleção
Devido ao volume de dados existentes na rede, é uma tarefa impossível a de armazenar todo o seu conteúdo. Como os web crawlers armazenam somente uma fração da informação, é desejável que esta informação seja pertinente e não aleatória. Esta é uma tarefa com alto nível de dificuldade, já que deve funcionar com informações parciais e o conjunto de páginas é desconhecido durante o crawling.
Política de Revisitação
A natureza da Web é muito dinâmica e crawling por uma fração da Web pode levar um longo período de tempo. No momento que um web crawler termina sua tarefa, muito pode ter acontecido, como criação de novas páginas, atualizações e deleções. Isso não é um bom negócio, pois não se valoriza um mecanismo de busca por resultados não encontrados ou dados desatualizados. Do ponto de vista dos mecanismos de busca denomina-se custo associado. O objetivo de um web crawler, portanto, é o de manter a média de idade das páginas armazenadas a mais baixa possível. Dois tipos de política de revisitação são: Política Uniforme - que se dedica a revisitar de todas as páginas com a mesma freqüência. Política Proporcional - que se dedica a revisitar mais as páginas que são atualizadas com mais freqüência.
Política de Cordialidade
Podemos notar que os web crawlers são muito úteis para diversas tarefas. Mas o uso deles possui um preço. Por exemplo, o consumo de banda considerável durante um longo período de tempo e a sobrecarga de servidores - especialmente se a freqüência de acessos é muito alta.
Uma solução parcial a esse problema é o Protocolo de Exclusão de Robôs (Robots Exclusion Protocol), também conhecido como robots.txt_protocol, é um padrão para administradores indicarem quais partes de seus servidores não devem ser acessadas por crawlers. É a maneira mais efetiva atualmente de evitar a sobrecarga nos servidores.
Política de Paralelização
Um crawler pode rodar múltiplos processos em paralelo. Isso tem o objetivo de maximizar a taxa de download e minimizar custos da paralelização. Para evitar repetidos downloads de uma URL, existem as políticas:
· Atribuição Dinâmica - Um servidor central atribui endereços aos crawlers dinamicamente. Permite que sistemas controlem a carga de cada crawler e permite também a remoção e adição de downloads dinamicamente.
· Atribuição Estática - A regra é fixa desde o começo. Como existem links externos que podem alcançar um site de um primeiro processo para um website atribuído à um segundo, devem ocorrem trocas de URLs.