WebKeySoft - Conception et développement  
   
 
HOME
 
 

Définition d'un crawler

Qu'est-ce qu'un crawler ?

12 octobre 2007

AddThis Social Bookmark Button

Un crawler (en français, pourrait se traduire par "rampeur") ou spider (en français, araignée), est un robot explorant automatiquement le web.

Principale tâches
Un robot est le nom donné à un logiciel exécutant automatiquement une tâche précise. Dans le cas du crawler, ces tâches peuvent êtres variées:

Le téléchargement de ressources tels que des pages web, des documents textes, Acrobat, ou Microsoft Office ainsi que des images. La recherche d'urls (Uniform Resources Locator) dans les ressources téléchargées

L'indexation des ressources dans un moteur de full text search (par exemple la solution open source Lucene de la fondation Apache, dont la version .NET)

Veille technologique

Validation du code HTML

Validation des liens (recherches des liens cassés)

Collecte de balises meta, title

Statistiques diverses
 

 
 

 


Le type de ressource
Le type de ressource peut être déterminé de deux manières:

Par l'extension dans l'url. Cette méthode n'est pas du tout sûr. Il n'est pas possible de prévoir assurément le type de ressource qui sera renvoyée. Les règles de redirections des serveurs web et la génération de d'images ou de documents par les scripts (php, asp, aspx, perl, etc…) sont les principales causes peuvent tromper les crawler.

Par le MIME Type. Pour être certain du type de ressource, il est nécessaire de traiter l'entête HTTP pour en extraire le MIME type. Le MIME type est une norme permettant d'identifier les ressources par une chaîne de caractère.


Une indexation intelligente
La taille actuelle du web est énorme et ne cesse de grandir. Il est illusoire de réussir à indexer la totalité et impossible de maintenir l'index à jour sans une horde de datacenters. Un datacenter est un regroupement dans un même lieu de nombreux serveurs avec de haute capacité de transport des donnée (fibre optique), d'enregistrement de données (parallélisation des disques durs) ou de calculs (multiprocesseurs, multicoeurs) reliés à internet.

Afin de rendre possible une exploration intelligente du web, il est nécessaire d'établir des règles de priorités dans l'ordre de sélection des pages à explorer. Le crawler utilisera des facteurs comme la présence de variables GET, la profondeur des dossiers, la présence de sous-domaine et leur profondeur, la présence de mots clés dans les urls, le type de ressources ou la longueur du document. Cette dernière est fournie par l'entête HTTP.

Un maintien intelligent de l'index
Afin de maintenir intelligemment le résultat de l'exploration dans le temps, il est nécessaire d'enregistrer les données récoltées au minimum l'entête http. Lorsque le crawler revisitera la page, il devra tout d'abord traiter l'entête HTTP afin de déterminer la date de dernière modification de la ressource. Il est éventuellement possible de la déterminer dans les méta-données des ressources, si disponible. Dans le cadre des ressources HTML, il est possible de le déterminer par la balise META name="date-revision-yyyymmdd".
Le crawler devrait donc suivre l'algorithme suivant:

Exemple d'algorithme de maitnien intelligent d'un index


Interactions possibles entre le webmaster et le crawler
Il est possible pour le webmaster d'interréagir avec les crawlers de deux manières différentes: avec le fichier robots.txt ou par la balise META robots des ressources HTML.

Le fichier robots.txt
Le but de ce fichier est de fournir un protocole d'exclusion de robots. Un seul fichier doit être présent par sous-domaine. Ce fichier permet d'exclure certaines ressources du site voir la totalité du site pour tout les robots ou en spécifiant leur User-Agent. La syntaxe est très simple:
User-agent: <user-agent du robot ou * pour tous les robots>
Disallow: <url à exclure (dossier ou ressource)>
Exemple: http://www.webkeysoft.com/robots.txt. Tous les robots doivent tout d'abord consulter et mémoriser ce fichier avant d'explorer un site web en s'y référant avant de télécharger chaque ressource.

La balise META robots
Dans la cadre des ressources HTML, la balise META name="robots" permet au webmaster de permettre ou d'interdire l'indexation et la prise en compte des liens de la page. La syntaxe est la suivante:
<META name="robots" content="index, follow"> Indexation et suivi des liens.
<META name="robots" content="index, nofollow"> Indexation uniquement.
<META name="robots" content="noindex, follow"> Suivi des liens uniquement.
<META name="robots" content="noindex, nofollow"> Aucun des deux, peut être considéré comme une page à ne pas visiter.


Les limitations des crawlers

L'exploration d'un crawler peut être limitée par deux facteurs: les ressources accessibles uniquement après utilisation d'un formulaire et le contenu construit et par des scripts (Par exemple avec la technologie Web 2.0). Ces ressources constituent ce que l'on appelle le web profond, ou le web caché.

Du point de vue d'un webmaster, il est possible de contourner le premier problème en fournissant une liste de liens qui afficheront les données fournies par les requêtes les plus fréquemment transmises lors de l'utilisation du formulaire par les utilisateurs ou un accès par des hyperliens alternatifs, sachant que les utilisateur se serviront de toute façon du formulaire.

Le deuxième cas est plus difficile à résoudre. Il convient que le webmaster fournisse une consultation alternative des données ne nécessitant pas de script pour y accéder et accessibles par des liens hypertextes présent uniquement dans des balises NOSCRIPT. Une autre solution plus spécifique à certains crawlers, comme GoogleBot, est l'utilisation de sitemap normalisés qu'il est possible de soumettre à Google et qui lui permettra de prendre connaissance de ressources cachées. Certains logiciels, comme Keyword Crawler, permettent de générer automatiquement un fichier sitemap pour Google.


Plus d'infos:
Wikipedia en Français Wikipedia en anglais Guide pour les robots Robots.txt Robot Exclusion

 
     Copyright © 2005 Thomas Mayor - WebKeySoft  
 
Valid HTML 4.01 Transitional Licence d'utilisation des logiciels

Partenaires web :
Association FdnF - IPCamera

Valid CSS!