Website-Link-Checker für Linux

In regelmäßigen Abständen muss ich meine Websites auf "Link-Rot" überprüfen. Der Plural deutet bereits an, dass dies eine Arbeit ist, die nicht manuell erledigt werden kann (zu vielen Websites und noch mehr Links zum Überprüfen), also möchte ich ein Tool, das mir hilft.

Must-Haves:

  • Muss unter Linux laufen
  • Muss erlauben, Filter zu definieren (für URLs/Server-Namen/Domains nicht zu prüfen; RegEx wäre toll, einfaches "substring" geht noch)
  • Muss erlauben, die Ausgabe zu filtern (zumindest um "nur Fehler und Warnungen anzuzeigen"; je detaillierter, desto besser)

Stark bevorzugt:

  • GUI- und CLI-Schnittstellen (damit ich es manuell mit einer netten Schnittstelle und auch automatisch von Cron ausführen kann – in diesem Fall sollte die GUI nach Möglichkeit die "Ergebnisse" laden können)
  • Einige Statistiken
  • Effizient:
    • Sollte dieselbe URL nicht mehrmals überprüfen (aber wenn sie defekt ist, melden Sie sie natürlich für jede Seite, auf der sie gefunden wird)
    • sollte dieselbe Seite nicht mehrmals parsen 1
  • Exakt (so wenig „falsche Negative“ wie möglich)

Schön zu haben:

  • in der Lage zu sein, anzugeben, welche URL-Parameter ignoriert werden sollen 2
  • Senden von (formatierten) Berichten per E-Mail (falls von Cron ausgeführt) 3
  • Kann Websites mit Authentifizierungsanforderung 4 scannen
  • Möglichkeit, Dateitypen vom Scannen auszuschließen 5

Ich habe bereits versucht:

  • gUrlChecker : Die GUI scheint alle Anforderungen zu erfüllen. Aber es ignoriert alle Filtereinstellungen (für zu überspringende Hosts/URLs; wenn ein Beispiel enthalten ist, wie das geht, ist diese Antwort willkommen – vielleicht habe ich etwas falsch gemacht, oder die Version von gUrlChecker , die ich verwendet habe, hat einen Fehler)
  • LinkChecker : viel zu viele "False Negatives" (zB meldet A leitet auf A, also auf sich selbst weiter; prüft mehrfach dieselbe Seite und meldet auch mehrfach ihre Fehler, meldet "unreachable pages" (301, 401), die eindeutig erreichbar waren (ohne "Autorisierung"), keine Filterung der Ausgabe (obwohl die Anzeige von "nur Fehler und Warnungen" akzeptabel ist, würde ich mir wünschen, dass es zB "nur Fehler" anzeigt). Auch dies könnte ein inzwischen behobener Fehler sein: als gUrlChecker habe ich es aus den Ubuntu-Repos installiert, die nicht immer die neusten Versionen haben (autsch, tatsächlich: 7.x im Repo, 9.3 auf der Projektseite – werde nochmal mit der neusten Version testen)

1: Wenn zB auf der gescannten Seite die Seiten A, B und C auf Z verlinken (immer noch auf dem gescannten Server selbst, also keine externen Links), sollte Z nur einmal gescannt werden, nicht 3 mal, wie ich es zB mit erlebt habe LinkChecker

2: Wenn die Seite zB dieselben Inhalte in mehreren Sprachen anbietet, macht es keinen Sinn, alle Sprachvarianten zu scannen (sofern die Links darauf identisch sind). So möchte ich zB den lang=XXParameter ignorieren und den Link-Checker a.php, a.php?lang=en, und a.php?lang=dedieselbe Seite berücksichtigen lassen. Dies könnte natürlich durch den Must-Have-Filter mit RegEx abgedeckt werden, vorausgesetzt, der langParameter ist optional ;)

3: Klar wird mit Cron STDERRgecaptured, also liegt der Focus dieser Mail auf "formatted". Das können zB ODF -Rechenblätter sein (die dann mit OpenOffice/LibreOffice "gefiltert" werden können).

4: dh die Sites, die den Zugriff auf Benutzername/Passwort anfordern (HTTP-Antwortcode 401); Ich habe gerade bemerkt , dass LinkChecker hinzugefügt hat, dass gUrlChecker mit v7.9 das auch kann. Dies bezieht sich hauptsächlich auf die zu scannende Seite , nicht unbedingt auf externe Links (wenn beides unterstützt wird, sollte es separat konfigurierbar sein)

5: Wenn der Link-Checker z. B. in der Lage ist, Inhalte von PDF-, MSWord- oder anderen Dokumenten zu scannen, sollte es möglich sein, dies auszuschalten: Eine Website enthält möglicherweise "ältere Dokumentversionen" als Referenz, wobei "veraltete Links" als "normal" gelten ". Der Ausschluss könnte nach Mime-Type oder Dateierweiterung erfolgen.

Antworten (1)

Da es keine Empfehlungen gab, bin ich bei LinkChecker gelandet . Während die meisten Nachteile, die ich mit meiner Frage aufgelistet habe, bestehen blieben, war die Verwendung der neuesten Version von der Website des Autors besser als die Ausführung der Version, die im Repo enthalten ist.

LinkChecker-GUI LinkChecker-CLI
LinkChecker GUI und CLI (Quelle: LinkChecker ; Bilder anklicken für größere Varianten)

Wie es meinen Anforderungen entspricht

Must-Haves

  • Muss unter Linux laufen: Ja, das tut es.
  • Muss erlauben, Filter zu definieren: Teilweise. Vorfiltern (dh Dinge von der Prüfung ausschließen) ist teilweise möglich, wenn auch nicht immer intuitiv. Ich habe keine Möglichkeit gefunden, die Ergebnisliste in der GUI zu filtern.
  • Muss erlauben, die Ausgabe zu filtern: Wieder teilweise, siehe vorheriger Punkt. Sobald die Ergebnisliste da ist, ist keine weitere Filterung mehr möglich.

Stark bevorzugt

  • GUI- und CLI-Schnittstellen: Ja (siehe Screenshots oben). Sogar ein Webinterface (CGI) ist vorhanden.
  • Einige Statistiken: Nicht so detailliert, wie ich gehofft hatte, aber einige Statistiken sind verfügbar (siehe untere rechte Ecke im GUI-Screenshot)
  • Effizient: Irgendwie. Immer noch viel zu viele "Duplikate"
  • Exakt (möglichst wenig „Falsch-Negative“): Hier habe ich mit gekämpft. Immer noch ein bisschen nervig, ich konnte sie nicht alle loswerden. Für „erfahrene Benutzer“ vielleicht möglich – aber für „Einsteiger“ definitiv nicht intuitiv

Schön zu haben

  • angeben können, welche URL-Parameter ignoriert werden sollen: Hier ist es mir nur teilweise gelungen. Es muss einen Trick geben, aber ich konnte ihn nicht finden: Es ist möglich, Muster für zu ignorierende URLs zu definieren, aber irgendwann habe ich aufgehört zu experimentieren, wie man das mit Parametern zum Laufen bringt: Optionsfenster mit URL-Mustern (klicken für größer Variante)
    Optionsfenster
  • Versenden von (formatierten) Berichten per Mail (falls von Cron ausgeführt): Aufgrund der nicht ganz zufriedenstellenden Ergebnisse mit der GUI habe ich dies nicht weiter überprüft.
  • Kann Sites mit Authentifizierungsanforderung scannen: Nicht gründlich getestet, aber dies scheint möglich zu sein – in der linkcheckerrcDatei zu konfigurieren:

    [authentication]
    # Different user/password pairs for different URLs can be provided.
    […]
    
  • Möglichkeit, Dateitypen vom Scannen auszuschließen: Ich musste mich damit nicht befassen, da LinkChecker anscheinend kein PDF oder anderes Dateiformat gefunden hat, das es scannen könnte.

Fazit

Obwohl LinkChecker nicht genau das ist, wonach ich suche, kommt es ziemlich nahe – höchstwahrscheinlich so nah wie möglich. Wenn Sie auf etwas gestoßen sind, das meinen Anforderungen besser entspricht, freue ich mich auf Alternativen :)

hast du xenu link sleuth mit wine probiert?
@Nivatius nein, und ich interessiere mich nur für native Lösungen, also kommt Wine nicht in Frage.