Table des matières

Contrôler les liens hypertexte d'un site

Problématiques

Authentification http

On utilise cette technique pour filtrer l'accès à des ressources. Elle utilise des mécanismes de base du protocole http. On la rencontre souvent à travers l'authentification par htaccess. Cette technique est souvent utilisée pour filtrer l'accès à un site de développement ou de préproduction. On l'applique alors au site, dans sa totalité.

En imposant l'authentification aux internautes, on l'impose aussi au robots d'analyse. Il faudra donc, selon les cas, configurer les robots pour qu'il puissent accéder au site ou renoncer à certains outils qui ne savent pas traiter ce type de situation.

Résultats d'analyse

Répétition de contrôle

Site Map

Validité des liens

Linkchecker

L'outil open source linkchecker propose trois interfaces : ligne de commande, graphique, web.

L'interface graphique permet une prise en main et une exploitation immédiate des résultats. Elle permet très peu de réglages mais intègre un éditeur graphique permettant d'attaquer directement le fichier de configuration (~/.linkchecker/linkcheckerrc).

L'outil est très configurable et permet notamment :

Installation facile :

# apt-get install w3c-linkchecker

Insallation

Pour une utilisation simple, à traver l'interface graphique :

# apt-get install linkchecker-gui

Si on veut la dernière version all.deb : http://ftp.debian.org/debian/pool/main/l/linkchecker/

Authentification http

Il faut éditer le fichier de configuration. Dans la section [authentication], le paramètre entry est une succession de ligne de triplets : url <espace> login <espace> passwd. L'url est définie par une expression régulière. Exemple :

entry= ^http://monsite\.org/ moi secret
  ^https://autresite\.org/ elle secrete

Envoi des résultats

sources : Send email with attachment(s) from script or command line (en)

En ligne de commande, il est facile de coupler linkchecker à un envoi de mail. Par exemple :

linkchecker -r1 -o html  --file-output=html/liencasses.html http://hotline.asdrad.com | mail -a "Mime-Version: 1.0" -a "Content-Type: text/html" -s "Liens casses" me@mydom.tld

Ce type de commande peut être lancé périodiquement…

Il faut toutefois faire attention à la version de la commande mail installée sur votre système. Dans l'exemple précédent, le format de sortie étant html, il faut ajouter des entêtes de mail pour que le message soit correctement affiché à la destinaire. La version standard de la commande mail installée sous Debian accepte ce type de paramètre. La version de mail installée comme dépendance de certaines applications, peut être heirloom-mailx, qui n'accepte pas ce paramétrage1). Un man mail sur votre système devrais vous indiquer comment sera interprété le paramètre -a.

Checkbot

Checkbot est un outil en ligne de commande bien pratique pour une vérification périodique.

Installation super simple :

# apt-get install checkbot

Utilisation basique :

$ checkbot http://mon-truc.org/

L'un de ses défaut est de ne pas distinguer, par défaut, les liens au sens du code html de la page des segments de texte ayant une allure d'URL. En gros, l'outil effectue une auto-détection des liens implicites.

Ça peut sûrement se paramétrer. À étudier…

gURLChecker

gURLChecker offre une interface graphique sans prétention mais bien pratique pour faire des contrôles pas si basiques que ça.

Pour l'exploration, on peut filtrer certains motifs, limiter les extensions de fichiers à analyser, autoriser l'authentification (en interactif uniquement), contrôler la présence de virus !

Elle permet un affichage sélectif des résultats par statut, type de document ou protocole (toutes combinaisons possible par cases à cocher).

Tous ces réglages sont sauvegardés sous forme de projet.

Le point faible est l'export des résultats : aucun ! On enregistre les résultats au format de l'application.

Version testée : 0.13.1

# apt-get install 

linklint

Linklint est un outil en ligne de commande doté de puissantes capacités de paramétrage du protocole (port, headers http, authentification…) en plus des filtrages classiques.

Il s'applique aussi bien à un site local qu'à un site distant.

Les résultats sont structurés en fichiers texte et/ou html. Certes, il sont directement exploitables en l'état mais leur export sous d'autres formats nécessite un peu d'ingénierie documentaire puisque rien n'est fourni par l'outil.

# apt-get install linklint
1)
Il lui associe une autre signification (pièce-jointe). Cela impose d'intervenir sur la sortie de linkchecker pour y ajouter les entêtes manquants.