Créer un graphe de site Web avec Gephi

Dans ce billet nous allons aborder la notion de graphe de site Web et nous verrons concrètement comment en construire un avec le logiciel Gephi.
Dans un prochain billet nous aborderons les graphes avec le Logiciel R.

Qu’est-ce qu’un graphe ?

Un graphe est une représentation d’un ensemble d’objets ou de personnes (points, nœuds, sommets…) reliés par des segments (arcs, flèches, liens…) permettant de visualiser un réseau. Les graphes sont souvent utilisés pour représenter des interactions entre des personnes.

Par exemple voici le graphe représentant la « co-apparition » sur une page des personnages du roman les Misérables de Victor Hugo :

On distingue aussi deux types de graphes : les graphes orientés ou la relation va dans un seul sens comme par exemple un graphe ou on va représenter des dons entre 2 personnes :

ou des graphes non orientés comme celui des Misérables ou on compte les « co-apparitions » sur une page de 2 personnages, ou comme celui-ci :

Un graphe pour un site Web ?

Dans notre cas nous allons nous intéresser à la représentation d’un site Web ou les nœuds seront les pages et les arêtes seront les liens. Comme on le suppose ce graphe sera orienté (ou dirigé) car on compte les liens d’une page vers une autre.

Le fait de créer un graphe de votre site va vous permettre de mieux visualiser sa structure ; de mettre en évidence d’éventuels problèmes sur des pages (liens morts) ; d’évaluer le « poids » de chacune des pages les unes par rapport aux autres, de contrôler le maillage de vos pages internes ; de vous aider à structurer votre site, par exemple, si vous souhaitez mettre en place un cocon sémantique (Voir une définition du cocon sémantique ici)…

De quoi ai-je besoin pour construire mon graphe ?

Comme je l’indiquai précédemment, avant d’aborder la construction de graphe de façon automatisable avec R, nous allons faire cela « à la main ».

Vous aurez besoin de :

  • Un logiciel « crawler » ou « spider » afin de récupérer les pages de votre site. Dans cet exemple nous avons utilisé Screaming Frog SEO Spider. Dans sa version gratuite vous avez la possibilité de « crawler » jusqu’à 500 pages sur votre site, ce qui est suffisant pour ne nombreux petits sites. Attention 500 pages cela peut faire des dizaines de milliers de liens !
  • Excel ou un tableur équivalent pour retraiter les fichiers de liens et de noeuds fournis par Screaming Frog.
  • Eventuellement un logiciel d’édition de texte ou de code source si vous êtes plus à l’aise qu’avec Excel. Nous vous suggérons Notepad++
  • Enfin le logiciel de création de graphes Gephi. Gephi est gratuit et open source et vous pouvez le télécharger sur Gephi.org. Gephi est compatible avec Windows, Mac OS X et Linux.

Bon tout cela fait un peu recette de cuisine 🙂 ! Mais continuons …

Exemple de création de Graphe

Tant qu’à faire, nous allons travailler sur notre site : Anakeyn.com :-).

Le site Anakeyn.com est en cours de refonte et se concentre maintenant sur des contenus et le développement d’outils pour les Web Marketeurs.

Ce nouveau site ne comporte pas pour l’instant beaucoup de pages (nous en sommes au 3ème article :-)). C’est pourquoi la question se pose de garder les 2 versions précédentes du site accessibles aux moteurs de recherche.

L’idée étant toutefois de bien les séparer car ils ne traitent pas exactement des mêmes sujets : la première version d’Anakeyn était orientée analyse concurrentielle et la deuxième version plus agence web générale… Ah ! Les aléas du positionnement et de la demande client :-).

Bon voilà c’est parti !!!

Phase 1 : crawl du site

Une fois que vous avez installé Screaming Frog SEO Spider, ouvrez-le puis démarrer un nouveau crawl : il suffit pour cela de mettre l’URL du site que vous souhaitez tester dans le champ prévu à cet effet :

Vous avez 2 fichiers à sauvegarder : le fichier des pages (nœuds) et le fichier des liens internes entre les pages.

Pour les pages cliquez sur Internal puis sur Export pour sauvegarder :

Le fichier s’appelle internal_all.csv.

Ensuite sauvegardez avec BulkExport -> All inlinks pour récupérer tous les liens internes :

le fichier s’appelle all_inlinks.csv.

Phase 2 : Importation et transformation du fichier de pages avec Excel

Attention !!! les fichiers internal_all.csv et all_inlinks.csv sont au format .csv standard avec un séparateur « , » et non « ; » comme chez les français 🙁 ; et par ailleurs la première ligne contient le nom du fichier (voir ci-dessous le fichier internal_all.csv avec NotePad++) :

Pour l’importer, vous pouvez soit le bidouiller avec NotePad++ pour enlever la première ligne et remplacer les « , » en « ; » puis ouvrir le fichier dans Excel ; soit « importer » le fichier en données texte !

Importation du fichier de pages internal_all.csv

Donc avec Excel (2016 chez moi) Ouvrir Excel -> Nouveau Classeur -> Données – > Fichier texte : internal_all.csv :

Suivez ensuite les instructions à l’écran :

  • Cliquez sur importer sur le premier écran. Excel repère que vous avez un fichier délimité. Vous pouvez indiquer de commencer l’importation à la ligne 2 car il y a le nom du fichier en ligne 1 et indiquez que vous avez des entêtes.
  • Sur l’écran d’importation suivant choisissez comme séparateur Virgule. Excel reconnait automatiquement l’identificateur de texte « .
  • Ensuite rester en version « standard » pour le format des colonnes et terminer l’importation si l’aperçu des données vous convient.
  • Enfin, vérifiez bien que le fichier va bien se positionner à partir de la cellule voulue ici $A$1 (attention si on clique par inadvertance sur une autre cellule cela va se positionner sur celle-ci).

Voilà le résultat :

Ouf : le Fichier est importé dans Excel !!! Vous noterez que la première ligne avec le nom du fichier n’a pas été importée comme souhaitée alors qu’elle était visible dans les aperçus tout au long de l’import :-). Encore une logique Microsoft qui m’échappe !!!

Retraitement du fichier de pages internal_all.csv

Nous allons maintenant retraiter le fichier internal_all.csv dans Excel pour qu’il soit compatible avec Gephi et qu’il réponde à notre problématique. Dans notre étude, on veut uniquement des pages HTML internes.

Voici les modifications à faire dans votre fichier. Pour ma part j’ai 400 documents dans mon fichier. C’est bizarre ce nombre rond, je me demande si ce n’est pas une limitation dans la version gratuite de Screaming Frog…

  1. Modifier le nom de la colonne « Address » en « Id »
  2. Accessoirement vous pouvez modifier le nom de la colonne « Title 1 » en « Label » mais pour ma part je préfère gérer les labels de pages ensuite à la main dans Gephi
  3. Ne garder que les pages de contenu html : content text/html; …(reste 248 pages)
  4. Enlever les urls d’images, voir dans la colonne « Id » ex « Address » les .gif, .jpg, .jpeg, .png… (reste 244 pages)
  5. Supprimer les colonnes qui n’apportent pas ou peu d’informations pour notre étude :
    • Hash
    • Last Modified
    • URL Encoded Address

Une fois vos retraitements effectués n’oubliez pas de sauvegarder votre fichier de pages : ici je l’ai appelé internall_all_excel.csv

Phase 3 : Importation et retraitement du fichier de liens all_inlinks.csv dans Excel

Comme précédemment, le fichier de liens all_inlinks.csv étant au format .csv standard avec un séparateur « , » vous pouvez soit le bidouiller avec NotePad++ pour enlever la première ligne et remplacer les « , » en « ; » puis ouvrir le fichier dans Excel ; soit « importer » le fichier en données texte !

Importation du fichier de liens all_inlinks.csv

Donc avec Excel (2016 chez moi) Ouvrir Excel -> Nouveau Classeur -> Données – > Fichier texte : all_inlinks.csv

Pour l’importation procédez comme avec le fichier de pages. Le résultat obtenu est celui-ci :

Retraitement du fichier de liens all_inlinks.csv

Comme précédemment, nous allons maintenant retraiter le fichier de liens dans Excel pour qu’il soit compatible avec Gephi. Ici on veut uniquement des liens internes au site, entre pages Web HTML. Remarque : dans une autre étude on pourrait vouloir les liens externes, uniquement les liens externes, les liens vers les images ou les css etc…

Le retraitement peut être ici un peu fastidieux. Au moment où je vous parle, j’ai 27962 liens dans mon fichier ! Pour vous cela peut être différent si vous étudiez mon site, car il aura forcément changé depuis cette étude.

Donc, voici les corrections à faire sur le fichier :

  1. Modifier le nom de la colonne « Destination » en « Target »
  2. Ne garder que les liens avec le type AHREF ou REDIRECT (reste 22325 liens)
  3. Enlever les liens vers des images voir dans la colonne « Target » les .gif, .jpg, .jpeg, .png… (reste 22305 liens)
  4. Enlever les liens externes dans Source et Target : normalement on ne devrait pas en avoir mais bon… Attention toutefois à bien conserver toutes les urls de votre site : http ou https www ou non etc (plus que 20095)

Ne pas oublier d’enregistrer ! Ici je l’ai appelé all_inlinks_excel.csv. Si vous avez un Excel français n’oubliez pas que votre .csv est maintenant avec des « ; » comme séparateurs !

Bon, à ce stade vous pouvez faire une pause et aller prendre un café. N’oubliez pas de faire une petite sauvegarde de vos fichiers Excel avant :-).

Apparté – rapide présentation du Logiciel Gephi

Avant d’importer les données dans Gephi, effectuons une rapide visite du Logiciel Gephi.

Le logiciel se présente en 3 vues principales :

  • La vue d’ensemble
  • Le Laboratoire de données
  • La prévisualisation
Vue d’ensemble

Le mode vue d’ensemble permet de travailler sur votre graphe. il est divisé en plusieurs modules :

  • Le module Aspect en haut à gauche qui permet de travailler sur la taille et la couleur des nœuds et des liens
  • Le module Spatialisation qui permet, grâce à un algorithme, de changer l’aspect du graphe : par exemple vous pourrez mettre en évidences des « clusters » de nœuds.
  • Le Module Graphe qui permet d’afficher le graphe à proprement parlé et aussi de le manipuler à la main.
  • Le module Filtres/Statistiques. Filtres permet de filtrer l’affichage du graphe, nous n’utiliserons pas cette fonction. Statistiques permet de calculer des statistiques qui pourront être utilisées par la suite pour modifier l’aspect du graphe. Pour nous il sera intéressant de calculer le PageRank.

La vue « Laboratoire de données » permet, comme son nom l’indique, d’importer et de travailler sur les données. La vue « Prévisualisation » permet de créer des graphes « finalisés » et plus « jolis ».

Phase 4 : Importation des fichiers dans Gephi

Lors de l’ouverture de Gephi il est possible qu’une fenêtre pop-up s’ouvre. Cliquez sur nouveau projet, ensuite Gephi se positionne sur la vue d’ensemble :

Pour importer les données, cliquez sur « Laboratoire de données » en haut à gauche (entouré en rouge).

Importer votre fichier de pages en premier, chez nous : internall_all_excel.csv.

Vérifiez que vous avez cliqué sur l’option « nœuds » à gauche puis cliquez sur « Importer feuille de calcul ». Dans la fenêtre pop-up, sélectionnez le séparateur « Point-Virgule » et comme table « Table des nœuds » :

Dans la prévisualisation l’important est ici de vérifier que la colonne Id comporte bien les Urls de vos pages.

Sur la fenêtre d’importation suivante, vérifiez juste que Id est coché. Vous pouvez importer ou non les autres champs. Importez au moins le champ « Status Code » qui sert dans notre exemple.

Cliquez sur Terminer pour afficher la dernière fenêtre d’importation :

Vérifiez juste que vous souhaitez ajouter à l’espace de travail existant pour éviter qu’il ne vous en crée un nouveau.

Importer ensuite votre fichier de liens :

Vérifiez que vous avez cliqué sur l’option « Liens » à gauche puis cliquez sur « Importer feuille de calcul ». Importez le fichier retravaillé précédemment sous Excel (pour nous all_inlinks_excel.csv)

Une fenêtre s’ouvre. Normalement si votre fichier a été bien construit précédemment, les champs s’affichent. Il est surtout important de vérifier si vous avez les champs Source et Target :

Le système vous demande ensuite quels champs vous souhaitez importer. Ici vous n’avez rien à changer -> Terminer :

Puis, pour finir vous pouvez indiquer quelques paramètres d’importation. A ce stade garder les paramètres par défaut.

Veillez à cliquer sur « Ajouter à l’espace de travail existant », pour être dans le même espace de travail que le fichier de nœuds précédemment importé.

Si l’import s’est correctement effectué vous devriez obtenir le tableau de liens suivant :

Phase 5 : Création du graphe dans Gephi

Cliquez maintenant sur vue d’ensemble afin d’afficher votre graphe. Celui-ci n’a pas été travaillé pour l’instant et se présente sous la forme d’un gros carré noir !!!

Aspect des noeuds et des liens

Comme nous l’avons vu précédemment dans le module Aspect vous avez la possibilité de travailler sur la couleur et la taille des nœuds ainsi que sur la couleur des liens en focntion de paramètres.

Profitons-en aussi pour calculer au préalable le PageRank des pages (à droite dans Statistiques)
Ensuite pour l’aspect :
Pour la couleur des nœuds j’ai choisi Partition -> Status Code.
Pour la taille des nœuds j’ai choisi Classement -> PageRank (que l’on vient de calculer) -> taille de 10 à 50.
En ce qui concerne les liens j’ai choisi en fonction de : Partition -> anchor.
Pour la spatialisation pour l’instant j’ai demandé un déchevauchement.

Voyons le résultat :

Sur ce graphe je peux déjà voir que j’ai une page en bleu c’est à dire en redirection 301 et qui reçoit beaucoup de « jus de lien », ce qui est un peu inutile.

En me positionnant dessus et en cliquant sur sélectionnez dans le Laboratoire de données je peux voir qu’il s’agit de la page https://www.anakeyn.com/v2 qui renvoie vers la page https://www.anakeyn.com/v2/ : il y a vraisemblablement un problème d’homogénéité du choix de la page d’accueil sur la version 2 du site !!!

Algorithme de spatialisation

Comme vous pouvez le constater, Gephi propose plusieurs algorithmes de spatialisation : Fruchterman Reingold, Force Atlas 2, Yifan Hu … Ces algorithmes permettent de mettre en évidence des regroupements au sein de réseaux.

Ici j’ai choisi Fruchterman Reingold avec les paramètres suivants : Zone 1000, Gravité 10, Vitesse 1. :

N’hésitez pas à tester les autres algorithmes.

Ce qu’il y a de rassurant est qu’il a repéré 3 groupes correspondants aux 3 versions de mon site.

En revanche, il subsiste encore des problèmes qui « sautent » aux yeux :
– Il reste encore beaucoup de pages avec des codes HTTP Request 301, 302 voire 404 ou des codes non récupérés avec parfois des PageRanks importants.
– Il reste des liens entre la version 2 du site et la version 1. Dans « l’esprit » du Siloing ou du cocon sémantique cela correspond à une fuite.
– Une page proche du groupe v1 (en bas à droite) est reliée aussi au groupe correspondant au site actuel. En fait il s’agit de la page http://www.anakeyn.com/contact/. Il y a 2 erreurs ici : cette page n’est pas en https et dans le groupe v1 elle aurait du être à l’adresse https://www.anakeyn.com/v1/contact/.
– la Page qui a le plus fort PageRank est la page https://www.anakeyn.com/v2/ 🙁 . C’est ballot si on veut référencer le site actuel.
– la Page « Mentions Légales » a aussi un PageRank important : Est-ce vraiment utile ?
-…

Comme vous pouvez le constater en observant bien le graphe de votre site, vous pourrez mettre en évidence les problèmes « de santé » de celui-ci.

Visualisation

Pour finir, afin de faire une visualisation plus propre, nous allons dans un premier temps ajouter quelques libellés aux pages que nous souhaitons mettre en évidence. Ici j’ai souhaité mettre en évidence les pages principales de la dernière version de mon site et les 2 pages d’accueil des versions précédentes.

Pour cela, il suffit d’utiliser la vue « Laboratoire de données » et d’ajouter des libellés pour les pages voulues dans la colonne Label de la table des nœuds. Veillez à donner des libellés courts pour ne pas surcharger votre graphe.

Ensuite, utiliser le module « Prévisualisation » pour ajuster quelques paramètres. Par exemple la forme des liens ou la taille des libellés pour avoir un rendu attractif.

Voilà ! Bravo d’être allé jusqu’au bout et n’hésitez pas à manipuler le logiciel Gephi pour faire votre propre expérience.

Dans un prochain billet nous parlerons des graphes avec le Logiciel R.

A Bientôt,

Pierre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *