Links auf Webseiten überprüfen mit Linkchecker

Aus LinuxUser 07/2012

Links auf Webseiten überprüfen mit Linkchecker

© Buzzybee, sxc.hu

Webfehlern auf der Spur

Manche Domains sterben einen leisen Tod – zurück bleiben verwaiste Links, die dorthin zeigen. Mit Linkchecker identifizieren Sie solche Sackgassen in Ihrer Webpräsenz.

Verwaiste Links auf einer Website sorgen für Verdruss beim Besucher. Dabei gibt es eine einfache Möglichkeit, solche Störenfriede zu identifizieren: das Programm Linkchecker.

Die Installation der Software geht in der Regel leicht von der Hand, da sie sich in den Repositories aller gängigen Distributionen findet. Dabei richten Sie am Besten gleich das Paket linkchecker-gui ein, das die grafische Oberfläche, das zugehörige Kommandozeilenprogramm sowie einige benötigte Bibliotheken in einem Rutsch auf die Platte bringt. Dabei erhalten Sie als Dreingabe auch noch die Möglichkeit, sich per Browser mit der Software zu verbinden (siehe Kasten “Ab ins Web”). Alternativ finden sich auf der Homepage des Projekts [1] zusätzlich Versionen für Windows, Mac OS X, Debian sowie den Quelltext zum Download.

Ab ins Web

Neben der GUI und der Kommandozeile unterstützt Linkchecker auch ein eigenes Webinterface. Informationen zum Aktivieren befinden sich bei Debian-basierten Systemen in der Datei README.Debian im Verzeichnis /usr/share/doc/linkchecker/.

Für den einfachen Einstieg starten Sie mittels linkchecker-gui die grafische Oberfläche. Im Vergleich zum Pendant für die Kommandozeile fällt der Einsatz der GUI zwar leichter, sie bildet aber nur einen Teil der Funktionen ab. Geben Sie für einen ersten Test im Adressfeld die URL der zu prüfenden Webseite ein, beispielsweise http://www.linux-user.de. Dabei unterstützt Linkchecker neben HTTP zusätzlich via HTTPS verschlüsselte Verbindungen und zahlreiche weitere Protokolle. Bei lokalen Dateien gilt es, immer den vollem Pfad anzugeben.

Nach einem Klick auf Start benötigt die Software trotz parallelen Prüfens je nach Umfang der Seite eine gewisse Zeit für ein Ergebnis – im Fall von Linux-User.de dauerte es trotz eines schnellen Internetzugangs über 30 Minuten. Dabei öffnet das Programm jede einzelne Webseite, folgt den darauf enthaltenen Verknüpfungen und eingebundenen Elementen wie Bildern und listet diejenigen im Programmfenster auf, bei denen ein Problem auftritt (Abbildung 1). Gelbe Markierungen weisen lediglich auf eine Warnung hin, wogegen rote Einträge für Fehler und Probleme stehen.

Abbildung 1: Fein säuberlich listet Linkchecker das Ergebnis auf. Rot markierte Einträge weisen auf Probleme hin.

Abbildung 1: Fein säuberlich listet Linkchecker das Ergebnis auf. Rot markierte Einträge weisen auf Probleme hin.

Die Bandbreite der Meldungen reicht dabei von Adressen, die nicht mehr existieren (HTTP-Code 404) oder auf die das Programm nicht zugreifen darf (HTTP-Code 403) über FTP-Verbindungen, Telnet-Links und NNTP-Verbindungen bis hin zu Mail-Adressen, deren Domain keinen gültigen Eintrag für einen Mailserver aufweist.

Nicht als Fehler, sondern lediglich als Warnung kennzeichnet das Programm beispielsweise solche Seiten, deren Adresse sich zwar geändert hat, die Sie aber noch über die alte URL erreichen (HTTP-Code 301). Als kleine Hilfe nennt die Applikation zudem die genaue Zeile und Spalte, an der das Problem im Seitenquelltext auftritt.

Genauere Informationen zu den einzelnen Einträgen blendet Linkchecker in der unteren Hälfte des Fensters ein. Neben den Angaben aus der Übersicht erfahren Sie, wie lange der Download und das Überprüfen der einzelnen Links gedauert hat, wie groß das jeweilige Element ausfällt, und vor allem auch, welcher konkrete Fehler auftritt – so liefert Linkchecker beispielsweise Meldungen bezüglich des Verbindungsaufbaus sowie den jeweils resultierenden HTTP-Code.

Weniger zur Fehlersuche als vielmehr für statistische Zwecke interessant sind die zusätzlichen Angaben, wie etwa die Anzahl der Warnungen, gültige wie ungültige Adressen sowie Informationen zur Anzahl der Elemente und der Länge der Adressen.

Detailverliebt

Standardmäßig listet Linkchecker die Resultate in der Reihenfolge des Prüfens auf. Alternativ sortieren Sie die Resultate wahlweise alphabetisch nach dem Ursprung (im Programm als Vater bezeichnet), der geprüften URL, deren Bezeichnung auf der Webseite sowie dem Fehler, indem Sie einfach den jeweiligen Titel der Spalten anklicken.

Um sich ein eigenes Bild von der Situation zu machen, klicken Sie die entsprechenden Adressen im Programmfenster an, um sie im Browser zu öffnen. Alternativ kopieren Sie sie mittels Rechtsklick in die Zwischenablage. Zum Weiterverarbeiten der gewonnenen Ergebnisse hält Linkchecker zudem die Möglichkeit bereit, diese mittels Datei | Ergebnisse speichern… als HTML-Dokument (Abbildung 2), als Textdatei oder im XML- beziehungsweise CSV-Format abzulegen.

Abbildung 2: Beim Export ins HTML-Format erhalten Sie einen guten Überblick über die Ergebnisse.

Abbildung 2: Beim Export ins HTML-Format erhalten Sie einen guten Überblick über die Ergebnisse.

Letzteres quittierte das Programm im Test jedoch mit einer Fehlermeldung, die auf Probleme mit einem Python-Modul hindeutet, und hinterließ eine unvollständige CSV-Datei. Einen ähnlichen Effekt hatte übrigens der Aufruf des integrierten Update-Mechanismus. Dessen Verwendung erübrigt sich beim Einsatz einer Version aus den Distributionquellen jedoch ohnehin.

Bei manchen Webseiten scheint das Überprüfen beinahe unendlich lange zu dauern. Der Grund dafür liegt in der Rekursionstiefe, also der Anzahl der Ebenen, die das Programm überprüft. Haben Sie eine entsprechende Anzahl an Seiten und externen Verknüpfungen, geht der Test sprichwörtlich vom Hundertsten ins Tausendste.

Um das zu vermeiden, passen Sie die Rekursionstiefe unter Bearbeiten | Optionen | GUI Optionen an (Abbildung 3). Die Vorgabe -1 besagt, dass das Programm jedem Link folgt, während der Wert 3 nur drei Ebenen tief prüft. Die Rekursion erstreckt sich übrigens immer nur auf die getestete Domain – externe Verknüpfungen prüft Linkchecker grundsätzlich nur bis zur ersten Ebene.

Abbildung 3: Die Rekursionstiefe bestimmt, bis in welche Ebenen Linkchecker vordringt.

Abbildung 3: Die Rekursionstiefe bestimmt, bis in welche Ebenen Linkchecker vordringt.

Im gleichen Dialog fordern Sie die Software außerdem bei Bedarf auf, nicht nur fehlerhafte Links aufzulisten, sondern alle geprüften Adressen. Allerdings gerät das jedoch selbst bei kleinen Webseiten schnell unübersichtlich, weswegen die Option standardmäßig deaktiviert bleibt.

Ebenfalls per Dialog greifen Sie auf die komplette Konfigurationsdatei zu (Abbildung 4), die sich im Home-Verzeichnis unter .linkchecker/linkcheckerrc befindet. Erklärungen zu den einzelnen Parametern finden Sie dabei sowohl in der Datei selbst als auch auf der dazugehörigen Manpage (man linkcheckerrc).

Abbildung 4: Auch einen kleiner Editor für die Konfigurationsdatei hat Linkchecker mit an Bord.

Abbildung 4: Auch einen kleiner Editor für die Konfigurationsdatei hat Linkchecker mit an Bord.

Back to the root(s)

Die vielen Optionen deuten bereits darauf hin, dass Linkchecker noch weitaus mehr Funktionen mitbringt, als die grafische Oberfläche abbildet. Im Grunde dient sie ohnehin nur als grafisches Frontend für das eigentliche Kommandozeilenprogramm linkchecker. Das greift zum einen auf die genannte Konfigurationsdatei zurück, und erlaubt zum anderen, einzelne Parameter direkt beim Aufruf zu überschreiben. Der Befehl man linkchecker liefert dazu weitergehende Erklärungen.

So gibt der Aufruf linkchecker -osql http://www.linux-user.de das Ergebnis des Tests im SQL-Format zurück, um es direkt in eine Datenbank einzutragen. Mittels --scan-virus überprüfen Sie beispielsweise das Download-Archiv mit einem lokal installierten ClamAV-Virenscanner (Paket clamav-daemon, Abbildung 5), und --check-html validiert die Dateien mittels Tidy [2], sofern Sie das Paket python-utidylib installiert haben. Analog kümmert sich --check-css um das Validieren von CSS-Elementen, was das Paket python-cssutils voraussetzt.

Abbildung 5: Auf der Kommandozeile beherrscht der Linkchecker sogar einen Virenscan.

Abbildung 5: Auf der Kommandozeile beherrscht der Linkchecker sogar einen Virenscan.

Betreiben Sie die Software hinter einer restriktiven Firewall, besteht die Möglichkeit, mit Linkchecker auf Proxies zurückgreifen, beispielsweise mit der Umgebungsvariable http_proxy. Dabei unterstützt die Applikation ebenso das Anmelden mit Benutzername und Passwort (-uBenutzer -pPasswort) wie den Einsatz von Cookies (-C).

Um bestimmte Adressen und Seiten von vornherein vom Prüflauf auszuschließen, greifen Sie in Kombination mit dem Parameter --ignore-url auf reguläre Ausdrücke zurück. Ist beispielsweise der direkte Zugriff auf Port 25 aus dem Netzwerk gesperrt, fördert jeder Link zu einer E-Mail-Adresse eine Warnung zutage, da Linkchecker versucht, sich mit dem Server zu verbinden. Über --ignore-url=^mailto: weisen Sie das Programm in diesem Fall einfach an, diese nicht zu überprüfen.

Die Filterfunktion durchsucht auf Wunsch den Inhalt von Seiten. So stellen Sie beispielsweise sicher, dass keinerlei Hinweis auf die Seite pfui.tld mehr vorkommt. Dazu geben Sie den Parameter -Wpfui.tld an. Dateien mit mehr als 10 KByte Umfang identifizieren Sie – sofern der Webserver die Abfrage unterstützt – mittels --warning-size-bytes=10240.

Fällt die Ausgabe von Linkchecker zu unübersichtlich aus, um die entsprechende Meldung zu finden, sorgt --no-warnings --no-status dafür, dass Sie nur noch die wichtigsten Informationen sehen.

Fazit

Linkchecker machte im Test einen guten Eindruck. Die grafische Oberfläche bietet zwar nur einen Teil der möglichen Parameter an, genügt aber für die meisten Anwendungsfälle. Zwar ist das Programm nur zum Teil ins Deutsche übersetzt, fällt jedoch zum Großteil selbsterklärend aus.

Das Kommandozeilenprogramm eignet sich vor allem für Experten oder Anwender, die das Programm in eigene Skripte einbinden möchten. Ausführliche Informationen zu allen Einstellungen hält die Manpage bereit, deren Lektüre sich unbedingt empfiehlt. 

Infos

[1] Linkchecker: http://linkchecker.sourceforge.net

[2] Tidy-Tools: Florian Effenberger, “Der Dreck soll weg”, Linux-Magazin 05/2012, S. 52, http://www.linux-magazin.de/Heft-Abo/Ausgaben/2012/05/Bitparade

Der Autor

Florian Effenberger engagiert sich seit vielen Jahren ehrenamtlich für freie Software. Er ist Chairman of the Board der Document Foundation. Zuvor war er fast sieben Jahre im Projekt OpenOffice.org aktiv. Sein Arbeitsschwerpunkt liegt in der Konzeption von Unternehmens- und Schulnetzwerken samt Softwareverteilungslösungen auf Basis freier Software. Zudem schreibt er regelmäßig für Fachpublikationen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 07/2012 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben