Forum général.cherche-logiciel Logiciel pour détecter les liens morts sur des pages hors ligne

Posté par  . Licence CC By‑SA.
Étiquettes :
1
6
août
2020

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  . É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  . Évalué à 2. Dernière modification le 06/08/20 à 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  . É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  . Évalué à 2. Dernière modification le 06/08/20 à 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  . Évalué à 4.

            Salut,

            Ok, mais je dois alors faire une remarque

            C'est pas de moi, hein. ;)

            Matricule 23415

            • [^] # Re: Euuh

              Posté par  . É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  . É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  . Évalué à 1. Dernière modification le 06/08/20 à 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  . É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  . É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  (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 en file://, 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  . É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.