Qu'est-ce qu'un crawler ?
Sommaire
Un crawler, ou scraper, est un outil qui permet d’obtenir le contenu (généralement textuel) d’une page web afin d’appliquer des traitements d’analyse.
On se place évidemment dans l’optique d’une automatisation, c’est-à-dire d’une collecte à large échelle, sinon un simple copier/coller depuis l’affichage d’une page web fera l’affaire.
Mais si vous faites cette opération à la main, vous allez vous rendre compte de la complexité de la tâche. En effet, une page web comprend bien d’autres choses que du contenu intéressant. Cela peut aller simplement de portions de texte du type « autres contenus qui pourraient vous intéresser » jusqu’aux publicités. Il faut donc séparer le bon grain de l’ivraie.
Comment nettoyer une page Web ?
Deux grands types de traitements peuvent être utilisés pour nettoyer une page web suivant la nature des pages à collecter.
Extraction selon la structure des pages
La première technique part du principe que vous savez ce que vous cherchez sur une page et que vous êtes capable d’indiquer à la machine où est le contenu recherché dans la page. Techniquement, cela s’effectue via des expressions XPath ou des désignations de style (CSS). Le crawler peut aller chercher précisément ce qui vous intéresse sur la page et le collecter, en ignorant tout le reste. C’est la méthode qui donne la meilleure précision.
Extraction de pages générique
La technologie faisant appel à la structure des pages n’est applicable que si vous connaissez a priori les pages sur lesquelles va s’appliquer la collecte. Si ce n’est pas le cas, si par exemple les pages à collecter sont fournies au crawler par un moteur de recherche, il faut alors tenter de détecter automatiquement quel est le « vrai » contenu du contenu annexe ou publicitaire depuis le flot HTML. Différentes techniques faisant appel à l’analyse de texte permettent de catégoriser un paragraphe comme « bon » contenu à l’aide d’indicateurs comme par exemple la longueur du paragraphe, le nombre de mots outils, le nombre de liens, etc.
Les méthodes hybrides
Souvent, les deux techniques sont mêlées car le standard HTML comporte des balises (optionnelles) qui peuvent marquer la présence du « vrai » contenu, sans que ces balises ne soient visibles lors de la consultation. De même, nombre d’insertions publicitaires suivent des motifs réguliers d’un site à l’autre.
Toute la technique du crawler sera donc de mêler une détection formelle (basée sur les balises) et une détection à base de contenu pour extraire efficacement le contenu des sites non répertoriés par le système.
Comment surveiller un site ?
Le crawling de sites s’effectue rarement en une fois : il se place généralement dans un processus itératif de surveillance des sites, soit qu’il s’agisse de revenir régulièrement sur un site afin d’en collecter les nouvelles pages ou de se baser sur les résultats d’un moteur de recherche pour identifier les URLs à crawler.
La surveillance des sites, généralement mise en place dans le cadre de la veille, combine fréquemment les deux techniques :
- L’utilisation de bouquets de sources thématiques, c’est-à-dire d’ensembles de sites web connus pour être pertinents sur un sujet donné.
- L’interrogation régulière d’un moteur de recherche (qui, par parenthèse, est lui aussi allé crawler le site pour pouvoir l’indexer).
Assurer la fraîcheur de l’information
Il y a généralement dans ce processus de surveillance une exigence de « fraîcheur » : on veut connaître l’information dès qu’elle est publiée sur le web, ou connaître immédiatement les mises à jour d’une page donnée. La solution est de lancer le crawling très régulièrement.
Mais il faut se rappeler qu’une page web est produite par un composant logiciel, le serveur web, qu’il ne s’agit pas de solliciter trop fréquemment, sous peine de le surcharger. Il serait alors incapable de répondre aux consultations standard des internautes. Le site surveillé deviendrait alors inaccessible (ce type de comportement est considéré comme une attaque informatique dite « par déni de service »). En réponse, un crawler trop insistant ainsi détecté se verrait interdire la consultation de l’intégralité du site (on parle de blacklist).
C’est pourquoi les crawlers sont tenus de respecter des bonnes pratiques de sollicitation des sites, plus ou moins formalisées, comme le fichier robots.txt qui indique quelles sont les pages « crawlables » du site, parfois aux dépens de la fraîcheur ou de l’exhaustivité.