title: Croquer des liens slug: croquer-liens date: 2015-10-08 chapo: Un outil pour vérifier les liens cassés.
This is a very sad graph · But to be honest I was expecting worse. I wonder if, a hundred years after I’m dead, the only ones that remain alive will begin with “en.wikipedia.org”?
*Web Decay Graph* (cache)
Entre deux cours et trois entrainements, j’ai aussi le plaisir de bosser avec Axel pour faire tourner data.gouv.fr :-). L’un des développements que l’on a réalisé au cours des six derniers mois est croquemort : un outil pour vérifier les liens cassés en allant leur croquer les orteils régulièrement. Je considère qu’il est temps d’en parler suite à un premier gros bug en production qui représente symboliquement une version 1.0 (et deux jours d’indisponibilité…).
Concrètement, il s’agit d’un microservice consistant en une API
à laquelle on peut passer des liens, unitairement ou en groupe, qui sont ensuite vérifiés de manière asynchrone avec une requête HEAD
. C’est nameko qui a été utilisé couplé à Redis et Rabbitmq et le résultat est plutôt performant. Les métadonnées correspondant à chaque lien sont stockées mais non versionnées dans le temps. Il manque encore une interface de type dashboard pour avoir un résumé des liens vérifiés.
On s’en sert sur data.gouv.fr pour afficher la disponibilité des ressources distantes aux visiteurs et prochainement avertir les producteurs s’ils ont des fichiers qui deviennent inaccessibles. C’est une manière d’améliorer la qualité de la plateforme en sensibilisant les acteurs sur la pérennité des données proposées. Le code est sous licence MIT — tout comme celui du site — et vous êtes bien évidemment invités à y participer et à l’adapter à votre propre usage.
Think about speech, letters, newspapers, books, smoke signals… Each medium serves only a particular subset of social purposes, and each medium is technically transparent enough that people can understand what’s happening when they use it.
The web is a single, increasingly complex infrastructure which has been adopted for mutually incompatible purposes. And almost nobody has a clear understanding of what the hell is actually happening when they type into a box on their screen.