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é.
Études de cas associés
Je suis dirigeant d’une entreprise informatique et mes équipes effectuent une veille technologique régulière afin de me tenir au courant de l’évolution de notre secteur d’activités, de la concurrence et des avancées technologiques potentielles. Cependant, je souhaiterais que mes équipes aillent au-delà de la veille et puissent me prévenir de ce qui va se passer autour de moi, dans mon activité, afin de m’aider à définir ma stratégie d'entreprise à court et moyen terme. Comment puis-je faire ?
Je suis responsable de la pharmacovigilance au sein d'une structure publique de veille sanitaire. Je souhaite pouvoir exploiter plus largement les sources d'information sur les effets des traitements et garantir une certaine objectivité des analyses à partir des textes libres : l'analyse linguistique automatisée répond-elle à ces objectifs et comment ?
Comme éditeur ou responsable de médias, je dois traiter le risque de plagiat, c'est à dire : lutter contre l'exploitation abusive du contenu de mes publications, mais aussi me prémunir du risque que mes publications tombent sous le coup d'accusations de plagiat.
Enseignant dans l'enseignement supérieur, je dois vérifier que les copies de mes étudiants ne contiennent pas d'extraits traduits d'articles scientifiques disponibles en ligne.
Responsable de la commercialisation de plusieurs titres de presse, je dois acquérir ou fidéliser mes abonnés en ligne en leur proposant l’actualité cruciale, voire critique dans leur activité, parmi des masses d’informations quotidiennes. Les mêmes outils de veille constituent un support précieux pour les journalistes de mes publications, à partir de sources externes.
Je suis directeur de la publication d'un journal d'information généraliste. A l'heure des médias sociaux, tout le monde ou presque peut publier de l'information visible de toute la planète. Cette formidable opportunité est hélas une aubaine pour les rumeurs voire la désinformation délibérée. Ne pas se faire le relais des infox est un devoir des médias désormais inscrit dans la loi. Débusquer et dénoncer la désinformation n'est pas une obligation légale mais un objectif éthique pour les médias.
Je suis responsable de la communication pour une ONG dans un domaine où l'information au public est essentielle et controversée et où le lobbying est très actif. Je dois repérer quotidiennement les informations diffusées et relayées sur les réseaux sociaux et dans la presse afin d'ajuster ma stratégie de communication. Existe-t-il des solutions de fact checking pour lutter contre la diffusion des infox (fake news) ?