linkchecker - Kommandozeilenprogramm zum Prüfen von HTML Dokumenten und
Webseiten auf ungültige Verknüpfungen
linkchecker [
Optionen] [
Datei-oder-URL]...
LinkChecker beinhaltet
- •
- rekursives Prüfen und Multithreading
- •
- Ausgabe als farbigen oder normalen Text, HTML, SQL, CSV,
XML oder einen Sitemap-Graphen in verschiedenen Formaten
- •
- Unterstützung von HTTP/1.1, HTTPS, FTP, mailto:,
news:, nntp:, Telnet und Verknüpfungen auf lokale Dateien
- •
- Einschränkung der Linküberprüfung mit
URL-Filter
- •
- Proxy-Unterstützung
- •
- Benutzer/Passwort Authorisierung für HTTP, FTP und
Telnet
- •
- Unterstützung des robots.txt Protokolls
- •
- Unterstützung für Cookies
- •
- Unterstützung für HTML5
- •
- Antivirusprüfung
- •
- ein Kommandozeilenprogramm und web interface
Der häufigste Gebrauchsfall prüft die angegebene Domäne
rekursiv:
$ linkchecker http://www.example.com/
Beachten Sie dass dies die komplette Domäne überprüft,
welche aus mehreren tausend URLs bestehen kann. Benutzen Sie die Option
-r, um die Rekursionstiefe zu beschränken.
Prüfe keine
/secret URLs. Alle anderen Verknüpfungen werden
wie üblich geprüft:
$ linkchecker --ignore-url=/secret mysite.example.com
Überprüfung einer lokalen HTML Datei unter Unix:
$ linkchecker ../bla.html
Überprüfung einer lokalen HTML Datei unter Windows:
C:\> linkchecker c:empest.html
Sie können den
http:// URL Anteil weglassen wenn die Domäne
mit
www. beginnt:
$ linkchecker www.example.com
Sie können den
ftp:// URL Anteil weglassen wenn die Domäne
mit
ftp. beginnt:
$ linkchecker -r0 ftp.example.com
Erzeuge einen Sitemap Graphen und konvertiere ihn mit dem graphviz dot Programm:
$ linkchecker -odot -v www.example.com | dot -Tps > sitemap.ps
- -f FILENAME, --config=FILENAME
- Use FILENAME as configuration file. By default LinkChecker
uses $XDG_CONFIG_HOME/linkchecker/linkcheckerrc.
- -h, --help
- Hilfe! Gebe Gebrauchsanweisung für dieses Programm
aus.
- -t NUMBER, --threads=NUMBER
- Generiere nicht mehr als die angegebene Anzahl von Threads.
Die Standardanzahl von Threads ist 10. Um Threads zu deaktivieren, geben
Sie eine nicht positive Nummer an.
- -V, --version
- Gebe die Version aus und beende das Programm.
- --list-plugins
- Print available check plugins and exit.
- -F TYPE[/ENCODING][/FILENAME],
--file-output=TYPE[/ENCODING][/FILENAME]
- Output to a file linkchecker-out.TYPE,
$XDG_DATA_HOME/linkchecker/failures for the failures output type, or
FILENAME if specified. The ENCODING specifies the output encoding, the
default is that of your locale. Valid encodings are listed at
https://docs.python.org/library/codecs.html#standard-encodings. The
FILENAME and ENCODING parts of the none output type will be ignored, else
if the file already exists, it will be overwritten. You can specify this
option more than once. Valid file output TYPEs are text, html, sql, csv,
gml, dot, xml, sitemap, none or failures. Default is no file output. The
various output types are documented below. Note that you can suppress all
console output with the option -o none.
- --no-warnings
- Gebe keine Warnungen aus. Standard ist die Ausgabe von
Warnungen.
- -o TYPE[/ENCODING], --output=TYPE[/ENCODING]
- Specify the console output type as text, html, sql, csv,
gml, dot, xml, sitemap, none or failures. Default type is text. The
various output types are documented below. The ENCODING specifies the
output encoding, the default is that of your locale. Valid encodings are
listed at
https://docs.python.org/library/codecs.html#standard-encodings.
- -v, --verbose
- Gebe alle geprüften URLs aus. Standard ist es, nur
fehlerhafte URLs und Warnungen auszugeben.
- --no-status
- Do not print URL check status messages.
- -D STRING, --debug=STRING
- Print debugging output for the given logger. Available
debug loggers are cmdline, checking, cache, plugin and all. all is an
alias for all available loggers. This option can be given multiple times
to debug with more than one logger.
- -q, --quiet
- Quiet operation, an alias for -o none that
also hides application information messages. This is only useful with
-F, else no results will be output.
- --cookiefile=FILENAME
- Use initial cookie data read from a file. The cookie data
format is explained below.
- --check-extern
- Check external URLs.
- --ignore-url=REGEX
- URLs matching the given regular expression will only be
syntax checked. This option can be given multiple times. See section
REGULAR EXPRESSIONS for more info.
- -N STRING, --nntp-server=STRING
- Gibt ein NNTP Rechner für news: Links. Standard ist
die Umgebungsvariable NNTP_SERVER. Falls kein Rechner angegeben
ist, wird lediglich auf korrekte Syntax des Links geprüft.
- --no-follow-url=REGEX
- Prüfe URLs die auf den regulären Ausdruck
zutreffen, aber führe keine Rekursion durch. Diese Option kann
mehrmals angegeben werden. Siehe Abschnitt REGULAR EXPRESSIONS
für weitere Infos.
- --no-robots
- Check URLs regardless of any robots.txt files.
- -p, --password
- Liest ein Passwort von der Kommandozeile und verwende es
für HTTP und FTP Autorisierung. Für FTP ist das
Standardpasswort anonymous@. Für HTTP gibt es kein
Standardpasswort. Siehe auch -u.
- -r NUMBER, --recursion-level=NUMBER
- Prüfe rekursiv alle URLs bis zu der angegebenen
Tiefe. Eine negative Tiefe bewirkt unendliche Rekursion. Standard Tiefe
ist unendlich.
- --timeout=NUMBER
- Setze den Timeout für TCP-Verbindungen in Sekunden.
Der Standard Timeout ist 60 Sekunden.
- -u STRING, --user=STRING
- Verwende den angegebenen Benutzernamen für HTTP und
FTP Autorisierung. Für FTP ist der Standardname anonymous.
Für HTTP gibt es keinen Standardnamen. Siehe auch -p.
- --user-agent=STRING
- Gibt den User-Agent an, der zu HTTP-Servern geschickt wird,
z.B. "Mozilla/4.0". Der Standard ist
"LinkChecker/X.Y", wobei X.Y die aktuelle Version von
LinkChecker ist.
- --stdin
- Read from stdin a list of white-space separated URLs to
check.
- FILE-OR-URL
- The location to start checking with. A file can be a simple
list of URLs, one per line, if the first line is "# LinkChecker URL
list".
Konfigurationsdateien können alle obigen Optionen enthalten. Sie
können zudem Optionen enthalten, welche nicht auf der Kommandozeile
gesetzt werden können. Siehe
linkcheckerrc(5) für mehr
Informationen.
Beachten Sie, dass standardmäßig nur Fehler und Warnungen
protokolliert werden. Sie sollten die
--verbose Option benutzen, um
eine komplette URL Liste zu erhalten, besonders bei Ausgabe eines
Sitemap-Graphen.
- text
- Standard Textausgabe in "Schlüssel:
Wert"-Form.
- html
- Gebe URLs in "Schlüssel: Wert"-Form als
HTML formatiert aus. Besitzt zudem Verknüpfungen auf die
referenzierten Seiten. Ungültige URLs haben Verknüpfungen
zur HTML und CSS Syntaxprüfung angehängt.
- csv
- Gebe Prüfresultat in CSV-Format aus mit einer URL
pro Zeile.
- gml
- Gebe Vater-Kind Beziehungen zwischen verknüpften
URLs als GML Graphen aus.
- dot
- Gebe Vater-Kind Beziehungen zwischen verknüpften
URLs als DOT Graphen aus.
- gxml
- Gebe Prüfresultat als GraphXML-Datei aus.
- xml
- Gebe Prüfresultat als maschinenlesbare XML-Datei
aus.
- sitemap
- Protokolliere Prüfergebnisse als XML Sitemap dessen
Format unter https://www.sitemaps.org/protocol.html dokumentiert
ist.
- sql
- Gebe Prüfresultat als SQL Skript mit INSERT Befehlen
aus. Ein Beispielskript, um die initiale SQL Tabelle zu erstellen ist
unter create.sql zu finden.
- failures
- Suitable for cron jobs. Logs the check result into a file
$XDG_DATA_HOME/linkchecker/failures which only contains entries
with invalid URLs and the number of times they have failed.
- none
- Gibt nichts aus. Für Debugging oder Prüfen
des Rückgabewerts geeignet.
LinkChecker akzeptiert Pythons reguläre Ausdrücke. Siehe
https://docs.python.org/howto/regex.html für eine
Einführung. Eine Ergänzung ist, dass ein regulärer
Ausdruck negiert wird falls er mit einem Ausrufezeichen beginnt.
Eine Cookie-Datei enthält Standard HTTP-Header (RFC 2616) mit den
folgenden möglichen Namen:
-
Host (erforderlich)
- Setzt die Domäne für die die Cookies
gültig sind.
-
Path (optional)
- Gibt den Pfad für den die Cookies gültig
sind; Standardpfad ist /.
-
Set-cookie (erforderlich)
- Setzt den Cookie Name/Wert. Kann mehrmals angegeben
werden.
Mehrere Einträge sind durch eine Leerzeile zu trennen. Das untige
Beispiel sendet zwei Cookies zu allen URLs die mit
http://example.org/hello/ beginnen, und eins zu allen URLs die mit
https://example.org beginnen:
Host: example.com
Path: /hello
Set-cookie: ID="smee"
Set-cookie: spam="egg"
Host: example.org
Set-cookie: baggage="elitist"; comment="hologram"
To use a proxy on Unix or Windows set the
http_proxy or
https_proxy environment variables to the proxy URL. The URL should be
of the form
http://[
user:pass@]
host[
:port].
LinkChecker also detects manual proxy settings of Internet Explorer under
Windows systems. On a Mac use the Internet Config to select a proxy. You can
also set a comma-separated domain list in the
no_proxy environment
variable to ignore any proxy settings for these domains. The
curl_ca_bundle environment variable can be used to identify an
alternative certificate bundle to be used with an HTTPS proxy.
Einen HTTP-Proxy unter Unix anzugeben sieht beispielsweise so aus:
$ export http_proxy="http://proxy.example.com:8080"
Proxy-Authentifizierung wird ebenfalls unterstützt:
Setzen eines Proxies unter der Windows Befehlszeile:
C:\> set http_proxy=http://proxy.example.com:8080
Alle URLs müssen einen ersten Syntaxtest bestehen. Kleine
Kodierungsfehler ergeben eine Warnung, jede andere ungültige
Syntaxfehler sind Fehler. Nach dem Bestehen des Syntaxtests wird die URL in
die Schlange zum Verbindungstest gestellt. Alle Verbindungstests sind weiter
unten beschrieben.
- HTTP Verknüpfungen (http:,
https:)
- Nach Verbinden zu dem gegebenen HTTP-Server wird der
eingegebene Pfad oder Query angefordert. Alle Umleitungen werden verfolgt,
und falls ein Benutzer/Passwort angegeben wurde werden diese falls
notwendig als Authorisierung benutzt. Alle finalen HTTP Statuscodes, die
nicht dem Muster 2xx entsprechen, werden als Fehler ausgegeben.
Der Inhalt von HTML-Seiten wird rekursiv geprüft.
- Lokale Dateien (file:)
- Eine reguläre, lesbare Datei die geöffnet
werden kann ist gültig. Ein lesbares Verzeichnis ist ebenfalls
gültig. Alle anderen Dateien, zum Beispiel Gerätedateien,
unlesbare oder nicht existente Dateien ergeben einen Fehler.
HTML- oder andere untersuchbare Dateiinhalte werden rekursiv
geprüft.
- Mail-Links (mailto:)
- Ein mailto:-Link ergibt eine Liste von
E-Mail-Adressen. Falls eine Adresse fehlerhaft ist, wird die ganze Liste
als fehlerhaft angesehen. Für jede E-Mail-Adresse werden die
folgenden Dinge geprüft:
- 1.
- Check the address syntax, both the parts before and after
the @ sign.
- 2.
- Look up the MX DNS records. If we found no MX record, print
an error.
- 3.
- Check if one of the mail hosts accept an SMTP connection.
Check hosts with higher priority first. If no host accepts SMTP, we print
a warning.
- 4.
- Try to verify the address with the VRFY command. If we got
an answer, print the verified address as an info.
- FTP-Links (ftp:)
- Für FTP-Links wird Folgendes geprüft:
- 1.
- Eine Verbindung zum angegeben Rechner wird aufgebaut
- 2.
- Versuche, sich mit dem gegebenen Nutzer und Passwort
anzumelden. Der Standardbenutzer ist anonymous, das
Standardpasswort ist anonymous@.
- 3.
- Versuche, in das angegebene Verzeichnis zu wechseln
- 4.
- Liste die Dateien im Verzeichnis auf mit dem
NLST-Befehl
- Telnet links (telnet:)
- Versuche, zu dem angegeben Telnetrechner zu verginden und
falls Benutzer/Passwort angegeben sind, wird versucht, sich
anzumelden.
- NNTP links (news:, snews:, nntp)
- Versuche, zu dem angegebenen NNTP-Rechner eine Verbindung
aufzubaucne. Falls eine Nachrichtengruppe oder ein bestimmter Artikel
angegeben ist, wird versucht, diese Gruppe oder diesen Artikel vom Rechner
anzufragen.
- Nicht unterstützte Links (javascript:,
etc.)
- Ein nicht unterstützter Link wird nur eine Warnung
ausgeben. Weitere Prüfungen werden nicht durchgeführt.
Die komplette Liste von erkannten, aber nicht unterstützten Links ist
in der Quelldatei linkcheck/checker/unknownurl.py. Die bekanntesten
davon dürften JavaScript-Links sein.
Sitemaps are parsed for links to check and can be detected either from a sitemap
entry in a robots.txt, or when passed as a
FILE-OR-URL argument in
which case detection requires the urlset/sitemapindex tag to be within the
first 70 characters of the sitemap. Compressed sitemap files are not
supported.
There are two plugin types: connection and content plugins. Connection plugins
are run after a successful connection to the URL host. Content plugins are run
if the URL type has content (mailto: URLs have no content for example) and if
the check is not forbidden (ie. by HTTP robots.txt). Use the option
--list-plugins for a list of plugins and their documentation. All
plugins are enabled via the
linkcheckerrc(5) configuration file.
Bevor eine URL rekursiv geprüft wird, hat diese mehrere Bedingungen zu
erfüllen. Diese werden in folgender Reihenfolge geprüft:
- 1.
- Eine URL muss gültig sein.
- 2.
- Der URL-Inhalt muss analysierbar sein. Dies beinhaltet zur
Zeit HTML-Dateien, Opera Lesezeichen, und Verzeichnisse. Falls ein
Dateityp nicht erkannt wird, (zum Beispiel weil er keine bekannte
HTML-Dateierweiterung besitzt, und der Inhalt nicht nach HTML aussieht),
wird der Inhalt als nicht analysierbar angesehen.
- 3.
- Der URL-Inhalt muss ladbar sein. Dies ist normalerweise der
Fall, mit Ausnahme von mailto: oder unbekannten URL-Typen.
- 4.
- Die maximale Rekursionstiefe darf nicht
überschritten werden. Diese wird mit der Option
--recursion-level konfiguriert und ist standardmäßig
nicht limitiert.
- 5.
- Die URL darf nicht in der Liste von ignorierten URLs sein.
Die ignorierten URLs werden mit der Option --ignore-url
konfiguriert.
- 6.
- Das Robots Exclusion Protocol muss es erlauben, dass
Verknüpfungen in der URL rekursiv verfolgt werden können.
Dies wird geprüft, indem in den HTML Kopfdaten nach der
"nofollow"-Direktive gesucht wird.
Beachten Sie, dass die Verzeichnisrekursion alle Dateien in diesem Verzeichnis
liest, nicht nur eine Untermenge wie bspw.
index.htm.
URLs von der Kommandozeile die mit
ftp. beginnen werden wie
ftp://ftp. behandelt, URLs die mit
www. beginnen wie
http://www.. Sie können auch lokale Dateien angeben. Falls sich
Ihr System automatisch mit dem Internet verbindet (z.B. mit diald), wird es
dies tun wenn Sie Links prüfen, die nicht auf Ihren lokalen Rechner
verweisen Benutzen Sie die Option
--ignore-url, um dies zu verhindern.
Javascript Links werden nicht unterstützt.
Wenn Ihr System keine Threads unterstützt, deaktiviert diese LinkChecker
automatisch.
Sie können mehrere Benutzer/Passwort Paare in einer Konfigurationsdatei
angeben.
Beim Prüfen von
news: Links muß der angegebene NNTP Rechner
nicht unbedingt derselbe wie der des Benutzers sein.
- NNTP_SERVER
- gibt Standard NNTP Server an
- http_proxy
- gibt Standard HTTP Proxy an
- https_proxy
- specifies default HTTPS proxy server
- curl_ca_bundle
- an alternative certificate bundle to be used with an HTTPS
proxy
- no_proxy
- kommaseparierte Liste von Domains, die nicht über
einen Proxy-Server kontaktiert werden
- LC_MESSAGES, LANG, LANGUAGE
- gibt Ausgabesprache an
Der Rückgabewert ist 2 falls
- •
- ein Programmfehler aufgetreten ist.
Der Rückgabewert ist 1 falls
- •
- ungültige Verknüpfungen gefunden wurden
oder
- •
- Warnungen gefunden wurden und Warnungen aktiviert sind
Sonst ist der Rückgabewert Null.
LinkChecker benutzt Hauptspeicher für jede zu prüfende URL, die in
der Warteschlange steht. Mit tausenden solcher URLs kann die Menge des
benutzten Hauptspeichers sehr groß werden. Dies könnte das
Programm oder sogar das gesamte System verlangsamen.
$XDG_CONFIG_HOME/linkchecker/linkcheckerrc - default configuration file
$XDG_DATA_HOME/linkchecker/failures - default failures logger output
filename
linkchecker-out.TYP - Standard Dateiname der Logausgabe
linkcheckerrc(5)
https://docs.python.org/library/codecs.html#standard-encodings -
gültige Ausgabe Enkodierungen
https://docs.python.org/howto/regex.html - Dokumentation zu
regulären Ausdrücken
Bastian Kleineidam <
[email protected]>
2000-2016 Bastian Kleineidam, 2010-2022 LinkChecker Authors