AA_webbing_buzzybee_sxc_725790.jpg

© Buzzybee, sxc.hu

Webfehlern auf der Spur

Links auf Webseiten überprüfen mit Linkchecker

26.06.2012
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.

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.

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.

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.

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.

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.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...