![](local/cache-vignettes/L62xH62/rubon3-da150.png?1717253049)
Liens entre les pages d’un site et adresses associées fournies par un robot.
par bernard.vuilleumier
Un « webcrawler » est un robot qui permet d’établir les relations existant entre les pages d’un site et qui fournit les adresses associées à ces liens. Il permet d’explorer la structure du site à différentes profondeurs.
Réseau d’amis sur facebook
Les relations entre diverses entités peuvent être représentées par un graphe. Si vous établissez votre rapport facebook avec WolframAlpha par exemple, vous obtenez le réseau de vos amis sous forme d’un graphe.
![](local/cache-vignettes/L600xH710/aa118c3c106cf669-68518905-f9821.png?1717425848)
La version pro de WolframAlpha qui autorise l’interactivité vous permet de visualiser l’ensemble de vos amis, vos amis masculins, féminins, plus jeunes ou plus âgés que vous, qui habitent votre ville ou encore ceux qui résident où vous avez vécu. Il est aussi possible de colorier les points qui les représentent selon la notoriété, l’âge, le genre, le nombre de commentaires ou de relations de vos amis.
![](local/cache-vignettes/L600xH603/941db407cbdbc4f7-079ef424-d1289.png?1717425848)
Ces représentations fournissent des informations aisément interprétables et sont utilisées, on peut s’en douter, par de nombreux services de renseignement.
Graphe des pages d’un site
Les liens entre les pages d’un site définissent un réseau, tout comme vos amis sur facebook. Le langage Wolfram permet de réaliser un robot (webcrawler) capable d’explorer un site à la profondeur souhaitée :
webcrawler[rooturl_, depth_] :=
Flatten[Rest[
NestList[
Union[Flatten[
Thread[# -> Import[#, "Hyperlinks"]] & /@ Last /@ #]] &, {"" -> rooturl}, depth]]]
Cette fonction accepte deux arguments, l’URL du site à explorer et la profondeur de recherche. Pour obtenir les liens du site http://i-les.ch/pages/index à la profondeur 1 par exemple on écrit :
webcrawler["http://i-les.ch/pages/index", 1]
La fonction retourne une liste de règles de la forme :
{"http://i-les.ch/pages/index" -> "http://i-les.ch/pages/EchangesCourriels.html",
"http://i-les.ch/pages/index" -> "http://i-les.ch/pages/Historique_Projet.html",
"http://i-les.ch/pages/index" -> "http://www.wolfram.com/language/"}
Le membre de gauche de chaque règle est l’URL de la page de départ (racine) et le membre de droite l’adresse d’une page qui lui est liée. Le langage Wolfram permet de représenter de telles listes sous forme de graphes. La présentation peut être choisie avec des options :
Graph[webcrawler["http://i-les.ch/moodle", 2], VertexStyle -> White,
VertexShapeFunction -> "Point", EdgeStyle -> Directive[Opacity[.5], Hue[.15, .5, .8]],
Background -> Black, EdgeShapeFunction -> (Line[#1] &)]
Voici le graphe du site www.i-les.ch
Adresses des pages dans des infobulles
L’option « VertexLabel » permet d’obtenir les adresses des pages dans des infobulles (Tooltips) associées aux points du graphe :
Graph[webcrawler["http://i-les.ch/moodle", 2],
VertexStyle -> White,
VertexShapeFunction -> "Point",
EdgeStyle -> Directive[Opacity[.5], Hue[.15, .5, .8]],
Background -> Black, EdgeShapeFunction -> (Line[#1] &),
VertexLabels -> Placed["Name", Tooltip]]
Infobulles et hyperliens associés aux points d’un graphe
En numérotant les points d’un graphe et en associant des hyperliens aux numéros, on offre la possibilité d’accéder aux adresses figurant dans les infobulles. Le survol d’un point donne l’adresse de la page et un clic sur le numéro permet d’y accéder. Exemple.