Vérifier la validité de ses marque-pages Firefox

closeCet article a été publié il y a 7 ans 6 mois 23 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

En effet, j’ai accumulé au fil des années quantité de liens qui pour certains ont du mourir. Plutôt que de les tester tous un par un, je me suis dit qu’il y avait des outils. Las, je suis tombé soit sur le nom d’une extension dont le développeur a retiré toute trace après s’être fâché avec les devs Firefox (j’ai pas ausculté l’affaire, je ne juge donc rien à part le résultat, à savoir plus d’extension), soit un freeware WIndows-Only. Youpi. J’ai donc opté pour une solution semi-automatique.

C’est du bon gros bash de porc brut de décoffrage que je vous livre là, libre à vous de l’améliorer, de le « terminer », bref, c’est même pas du GPLv3, c’est du WTFPL pur jus. Le fonctionnement est simple, on exporte ses marques-pages (dans le fameux fichier bookmarks.html), et ensuite, le script va le lire pour en faire une mega-liste de liens à tester et créer autant de fichier /tmp/*.list que de codes de retours différents qu’il aura reçu à partir des liens. Les liens purement morts (souvent plus de domaines) seront dans le fichier 000.list, les liens valides 200.txt, les redirections dans les fichiers 30x.list, les pages non trouvées dans 404.list, etc. A la fin il vous donne la liste des fichiers créés :

Attention : dans le fichier 000.txt, qui regroupe tous les liens sans réponse, vous trouverez des lignes du genre « place:… » qui sont en fait les marque-pages spéciaux (Récemment marqués…). Aussi, je n’ai pas testé avec du marque-page dynamique (RSS mon amour), ils apparaitront peut-être ici aussi.

Je vous conseille quand même de double-vérifier certains liens qui vous paraissent mal classés, j’ai par exemple pris un timeout sur la liste des attributions de plage IPv4 de l’IANA juste parce que mon cousin a chargé une vidéo YouTube à ce moment-là ce qui a ralenti le traitement des liens au-delà des 20 secondes. Tiens à ce propos j’ai placé cette limite pour limiter le temps d’attente sur les liens dont les domaines ne répondent plus. Si vous pensez que c’est trop bas, libre à vous de modifier/supprimer.

Pour récupérer le code de retour d’une page, j’ai utilisé curl, dans un usage assez méconnu, car je pensais parser le résultat d’un curl -I, mais finalement, je n’ai pas eu besoin :

Le -I, tout le monde connaît, ça fait un HEAD à la place d’un GET. Le moins connu, c’est le -w « %{http_code} » qui fait un peu penser à une syntaxe de type Apache, et qui permet d’afficher le contenu de variables, dont la liste se trouve sur la page de manuel de curl.

Voici le script rapide :

Résultat : Je peux m’assurer de directement supprimer les liens en 404, parce qu’ils ne sont tout simplement plus là. Les 410 aussi. Le 250 est étrange, mais en fait, c’est parce qu’il concerne un serveur FTP (celui d’OVH en l’occurrence), 250 étant le fait que le serveur est toujours là et qu’il a répondu parfaitement. Les 405 concernaient tous des pages Amazon. Apparemment chez eux, vous affichez ou vous affichez pas, mais vous ne vérifiez pas si ça existe encore (probablement pour limiter les actions des robots, mais comme ils parsent les pages pour l’indexation, c’est très rare). J’ai aussi eu droit à du 429 de la part de Reddit, parce que j’ai tenté trop de requêtes dans un temps qu’il considère trop court. Certains ont aussi détecté que c’était curl et donc bloqués les requêtes.

Il y a plus de 80 liens en redirection (301/302/303). Ce sont les plus longs à vérifier, parce qu’ils peuvent soit juste être dus à un passage à HTTPS, soit un changement de domaine. Soit un rachat pur et simple, avec le domaine qui existe toujours mais pas le site derrière et un hébergeur/registrar qui ne respecte pas le protocole en ne renvoyant pas le bon code d’erreur.

Au passage j’en ai profité pour corriger mes favoris qui seraient toujours valides pour les liens « finaux ». A force de vérifications, je réduis la liste de redirections/codes bizarres pour n’avoir que du lien valide. Ca fait toujours trop de marque-pages, et je pense que je pourrais supprimer certains d’entre eux qui au final ne m’ont plus jamais resservis par la suite. Mais ça, aucun script ni aucun outil ne peut le savoir à ma place. Pour l’instant…

9 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
SebastienP
SebastienP
10/09/2016 11:34

Bonjour,

ça faisait un moment que je cherchais ça sous linux, merci !
Le script commence par dire qu’il ne trouve pas de fichier .list dans /tmp, ok je comprends.
Mais après on ne voit pas ce qui se passe, or les fichiers .list sont bien créés.

Du coup, après une petite recherche (parce que je n’y connais rien en scripts), j’ai ajouté un -x en fin de ligne 1, ce qui rend le script (très) bavard, et c’est assez ‘rassurant’ de voir qu’il avance bien.

Ca donne donc simplement:
#!/bin/bash -x

@+

SebastienP
SebastienP
10/09/2016 12:55
Répondre à  Seboss666

Y’a pas de souci, crade ou pas ça fait le boulot et c’est tout ce que je demandais 😉
Je rajoute la ligne que tu m’as donné et je vois.
Merci encore

Not A Robot
10/09/2016 16:00

Alors là merci ! Je suis en train de tester ton script et je vais enfin pouvoir faire le ménage dans cette horreur qu’est devenu mon gestionnaire de favoris ^^

genma
13/09/2016 10:24

A quand un dépôt git avec le code de tes astuces du coup? 🙂

johnny
johnny
10/11/2016 10:13
Répondre à  Seboss666

framagit.org ?

Il ne faut jamais discriminer le code ! Crade ou pas ton code peut servir à quelqu’un

qwerty
qwerty
21/02/2017 21:29

Bien ! Comment détecter les liens cybersquattés ?