Ein Python -Programm, das kriecht Slither? Eine Website für Links und druckt einen YAML -Bericht mit zerbrochenen Links.
Python 3.6 oder höher.
Es gibt keine externen Abhängigkeiten, Neo.
$ python hydra.py -h
usage: hydra.py [-h] [--config CONFIG] URLPositionsargumente:
URL : Die URL der Website zu kriechen. Stellen Sie sicher, dass URL absolut ist, einschließlich Schema, z. B. https://example.com .Optionale Argumente:
-h , --help : Hilfsnachricht anzeigen und beenden--config CONFIG , -c CONFIG : Pfad zu einer KonfigurationsdateiEin Bericht über kaputte Links wird in STDOut ausgegeben, sodass Sie diese möglicherweise in eine Datei umleiten möchten.
Der Bericht wird yaml formatiert. Um die Ausgabe in einer Datei zu speichern, führen Sie aus:
python hydra.py [URL] > [PATH/TO/FILE.yaml]Sie können den Datum dem Dateinamen mit einer Befehlssubstitution hinzufügen, z. B.:
python hydra.py [URL] > /path/to/ $( date ' +%Y_%m_%d ' ) _report.yaml Um zu sehen, wie lange Hydra dauert, um Ihre Website zu überprüfen, fügen Sie time hinzu:
time python hydra.py [URL]Sie können Hydra problemlos als Teil eines automatisierten Prozesses mithilfe der Link-Snitch-Aktion einbeziehen.
Hydra kann eine optionale JSON -Konfigurationsdatei für bestimmte Parameter akzeptieren, zum Beispiel:
{
"OK" : [
200 ,
999 ,
403
],
"attrs" : [
" href "
],
"exclude_scheme_prefixes" : [
" tel "
],
"tags" : [
" a " ,
" img "
],
"threads" : 25 ,
"timeout" : 30 ,
"graceful_exit" : " True "
}Um eine Konfigurationsdatei zu verwenden, geben Sie den Dateinamen an:
python hydra.py https://example.com --config ./hydra-config.jsonMögliche Einstellungen:
OK - HTTP -Antwortcodes, die als erfolgreiche Linkprüfung berücksichtigt werden müssen. Standardeinstellungen zu [200, 999] .attrs - Attribute der HTML -Tags, um nach Links zu suchen. Standardmäßig ["href", "src"] .exclude_scheme_prefixes - HTTP -Schema Präfixe aus dem Überprüfen ausschließen. Standardeinstellungen zu ["tel:", "javascript:"] .tags - HTML -Tags, um nach Links zu suchen. Standardmäßig ["a", "link", "img", "script"] .threads - Maximale Arbeiter zum Laufen. Standardeinstellung auf 50 .timeout - Maximale Sekunden, um auf die HTTP -Antwort zu warten. Standardeinstellung auf 60 .graceful_exit - Wenn auf True eingestellt und es defekte Links vorhanden sind, return exit code 0 sonst return exit code 1 . Laufen:
python -m unittest tests/test.py