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 :
- l'authenfication http,
- l'enrichissement des résultats (détection d'expressions régulières dans les pages),
- l'exclusion de certaines pages (expression régulières),
- de nombreux formats de sortie (html, xml, csv, txt, site map…).
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.
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