Qu'est-ce qu'un crawler ?

Un craw­ler, ou scra­per, est un outil qui per­met d’ob­te­nir le conte­nu (géné­ra­le­ment tex­tuel) d’une page web afin d’ap­pli­quer des trai­te­ments d’analyse.

On se place évi­dem­ment dans l’op­tique d’une auto­ma­ti­sa­tion, c’est-à-dire d’une col­lecte à large échelle, sinon un simple copier/coller depuis l’af­fi­chage d’une page web fera l’affaire.

Mais si vous faites cette opé­ra­tion à la main, vous allez vous rendre compte de la com­plexi­té de la tâche. En effet, une page web com­prend bien d’autres choses que du conte­nu inté­res­sant. Cela peut aller sim­ple­ment de por­tions de texte du type « autres conte­nus qui pour­raient vous inté­res­ser » jus­qu’aux publi­ci­tés. Il faut donc sépa­rer le bon grain de l’ivraie.

Comment nettoyer une page Web ?

Deux grands types de trai­te­ments peuvent être uti­li­sés pour net­toyer une page web sui­vant la nature des pages à collecter.

Extraction selon la structure des pages

La pre­mière tech­nique part du prin­cipe que vous savez ce que vous cher­chez sur une page et que vous êtes capable d’in­di­quer à la machine où est le conte­nu recher­ché dans la page. Tech­ni­que­ment, cela s’ef­fec­tue via des expres­sions XPath ou des dési­gna­tions de style (CSS). Le craw­ler peut aller cher­cher pré­ci­sé­ment ce qui vous inté­resse sur la page et le col­lec­ter, en igno­rant tout le reste. C’est la méthode qui donne la meilleure précision.

Extraction de pages générique

La tech­no­lo­gie fai­sant appel à la struc­ture des pages n’est appli­cable que si vous connais­sez a prio­ri les pages sur les­quelles va s’ap­pli­quer la col­lecte. Si ce n’est pas le cas, si par exemple les pages à col­lec­ter sont four­nies au craw­ler par un moteur de recherche, il faut alors ten­ter de détec­ter auto­ma­ti­que­ment quel est le « vrai » conte­nu du conte­nu annexe ou publi­ci­taire depuis le flot HTML. Dif­fé­rentes tech­niques fai­sant appel à l’a­na­lyse de texte per­mettent de caté­go­ri­ser un para­graphe comme « bon » conte­nu à l’aide d’in­di­ca­teurs comme par exemple la lon­gueur du para­graphe, le nombre de mots outils, le nombre de liens, etc.

Les méthodes hybrides

Sou­vent, les deux tech­niques sont mêlées car le stan­dard HTML com­porte des balises (option­nelles) qui peuvent mar­quer la pré­sence du « vrai » conte­nu, sans que ces balises ne soient visibles lors de la consul­ta­tion. De même, nombre d’in­ser­tions publi­ci­taires suivent des motifs régu­liers d’un site à l’autre.

Toute la tech­nique du craw­ler sera donc de mêler une détec­tion for­melle (basée sur les balises) et une détec­tion à base de conte­nu pour extraire effi­ca­ce­ment le conte­nu des sites non réper­to­riés par le système.

Comment surveiller un site ? 

Le craw­ling de sites s’ef­fec­tue rare­ment en une fois : il se place géné­ra­le­ment dans un pro­ces­sus ité­ra­tif de sur­veillance des sites, soit qu’il s’a­gisse de reve­nir régu­liè­re­ment sur un site afin d’en col­lec­ter les nou­velles pages ou de se baser sur les résul­tats d’un moteur de recherche pour iden­ti­fier les URLs à crawler.

La sur­veillance des sites, géné­ra­le­ment mise en place dans le cadre de la veille, com­bine fré­quem­ment les deux techniques :

  1. L’u­ti­li­sa­tion de bou­quets de sources thé­ma­tiques, c’est-à-dire d’en­sembles de sites web connus pour être per­ti­nents sur un sujet donné.
  2. L’in­ter­ro­ga­tion régu­lière d’un moteur de recherche (qui, par paren­thèse, est lui aus­si allé craw­ler le site pour pou­voir l’indexer).

Assurer la fraîcheur de l’information

Il y a géné­ra­le­ment dans ce pro­ces­sus de sur­veillance une exi­gence de « fraî­cheur » : on veut connaître l’in­for­ma­tion dès qu’elle est publiée sur le web, ou connaître immé­dia­te­ment les mises à jour d’une page don­née. La solu­tion est de lan­cer le craw­ling très régulièrement.

Mais il faut se rap­pe­ler qu’une page web est pro­duite par un com­po­sant logi­ciel, le ser­veur web, qu’il ne s’a­git pas de sol­li­ci­ter trop fré­quem­ment, sous peine de le sur­char­ger. Il serait alors inca­pable de répondre aux consul­ta­tions stan­dard des inter­nautes. Le site sur­veillé devien­drait alors inac­ces­sible (ce type de com­por­te­ment est consi­dé­ré comme une attaque infor­ma­tique dite « par déni de ser­vice »). En réponse, un craw­ler trop insis­tant ain­si détec­té se ver­rait inter­dire la consul­ta­tion de l’in­té­gra­li­té du site (on parle de bla­ck­list).

C’est pour­quoi les craw­lers sont tenus de res­pec­ter des bonnes pra­tiques de sol­li­ci­ta­tion des sites, plus ou moins for­ma­li­sées, comme le fichier robots.txt qui indique quelles sont les pages « craw­lables » du site, par­fois aux dépens de la fraî­cheur ou de l’exhaustivité.

Par Hugues de Mazancourt
Président de l'APIL