Bonjour, le logiciel d'analyse de données ROOT est développé par le CERN. Sa documentation pointe par endroit sur des liens morts. Voir par exemple ce commentaire que j'ai envoyé aux développeurs.
ROOT dispose déjà d'un outil de détection de liens morts pour son site Web. Connaitriez-vous un logiciel qui pourrait faire le même boulot mais pour des pages hors ligne ? L'idée serait de pouvoir parcourir l'ensemble du dépôt Git et d'essayer de détecter tous les liens morts.
Bien évidemment, c'est mieux si le logiciel est libre.
# Euuh
Posté par _kaos_ . Évalué à 3.
Salut,
Question. Je n'ai probablement pas compris.
Tu veux faire comment pour détecter les liens morts en étant hors ligne ?
Matricule 23415
[^] # Re: Euuh
Posté par WrathOfThePixel . Évalué à 2. Dernière modification le 06 août 2020 à 12:29.
Je pense qu'il doit vouloir dire sur des pages qui ne sont pas servies par un serveur web, mais en les parsant directement.
[^] # Re: Euuh
Posté par _kaos_ . Évalué à 2.
Salut,
je pense que c'est ça aussi, mais comment faire sans au moins un serveur web local ?
Une url, c'est pas juste une bête page, il peut y avoir des paramètres…
Matricule 23415
[^] # Re: Euuh
Posté par WrathOfThePixel . Évalué à 2. Dernière modification le 06 août 2020 à 12:38.
Que les pages parsées ne soient pas servies en http empêche pas de detecter les liens qu'elles contiennent, puis de les tester. Ça sera juste une mécanique différente.
C'est probablement pas super dur à scripter avec les bonnes libs.
[^] # Re: Euuh
Posté par _kaos_ . Évalué à 4.
Salut,
Ok, mais je dois alors faire une remarque
C'est pas de moi, hein. ;)
Matricule 23415
[^] # Re: Euuh
Posté par WrathOfThePixel . Évalué à 1.
Ben après pour les détails je sais pas. Si ça marche pas avec les regex, ça doit bien marcher avec autre chose d'une manière ou d'une autre. S'il n'y avait pas moyen de parser un lien dans une page, on aurait pas de navigateur en fait :D
Donc pas de lien.
Donc pas de question.
Donc pas de discution.
Le monde serait-il plus beau ?
Sinon, je serais étonné qu'il n'existe pas une lib quelconque qui fasse ca très bien dans differents langages.
[^] # Re: Euuh
Posté par pamputt . Évalué à 2.
Oui, WrathOfThePixel, tu as bien compris. L'idée ce serait de parser le code directement pour trouver les liens et essayer de les contacter les sites ainsi extraits.
[^] # Re: Euuh
Posté par WrathOfThePixel . Évalué à 1. Dernière modification le 06 août 2020 à 13:16.
Si tu sais un peu coder, tu peux charger tes page en xml et regarder ce qu'il y a dans les balises 'a' (en esperant qu'il n'y ai rien de généré en JS sinon c'est mort).
Sinon je sais pas, je connais pas de soft tout fait qui fasse ce que tu demandes, désolay.
[^] # Re: Euuh
Posté par _kaos_ . Évalué à 4.
Salut,
Moi ce que j'avais en tête dès ce matin c'est Selenium.
Pas sûr que ça réponde au cahier des charges, d'où le questionnement ;)
Matricule 23415
[^] # Re: Euuh
Posté par wismerhill . Évalué à 3.
En shell, tidy pour refaire du XML propre à partir d'un HTML quelconque, et ensuite xmlstarlet pour en extraire les liens.
(bien entendu, ça ne fonctionne qu'avec du HTML statique, pas pour des pages générées par javascript)
# wget --spider
Posté par Matthieu Moy (site web personnel) . Évalué à 4.
wget --spider
fait à peu près ce que tu veux, mais bizarrement il n'accepte pas de se lancer sur un fichier ou une URL enfile://
, il lui faut un serveur web.Pour à peu près le même besoin que toi, j'avais écrit un petit script qui lance un serveur web, lance
wget --spider
sur la page servie, et arrête le serveur quand il a fini : https://gitlab.com/moy/check-links/On peut certainement faire plus efficace en parsant le HTML pour extraire les liens, et en vérifiant les liens, sans lancer de serveur web local, mais ça marche (et j'étais surpris de ne pas trouver de solution plus simple pour un besoin aussi banal).
[^] # Re: wget --spider
Posté par pamputt . Évalué à 2.
Merci, ça semble en effet se rapprocher grandement ce que j'ai besoin. Je vais tester ça.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.