Программа Python, которая ползания Слэки? Веб -сайт для ссылок и печатает отчет YAML о сломанных ссылках.
Python 3.6 или выше.
Нет внешних зависимостей, Нео.
$ python hydra.py -h
usage: hydra.py [-h] [--config CONFIG] URLПозиционные аргументы:
URL : URL сайта для ползания. Убедитесь, что URL является абсолютным, включая схему, например, https://example.com .Необязательные аргументы:
-h , --help : Показать сообщение справки и выход--config CONFIG , -c CONFIG : path to configuration fileОтчет о сломанных ссылках будет выведен в Stdout, поэтому вы можете перенаправить это в файл.
Отчет будет отформатирован YAML. Чтобы сохранить вывод в файл, запустите:
python hydra.py [URL] > [PATH/TO/FILE.yaml]Вы можете добавить текущую дату в имя файла, используя замену команды, например:
python hydra.py [URL] > /path/to/ $( date ' +%Y_%m_%d ' ) _report.yaml Чтобы увидеть, сколько времени требуется Hydra, чтобы проверить ваш сайт, добавьте time :
time python hydra.py [URL]Вы можете легко включить Hydra как часть автоматизированного процесса, используя действие Link-Snitch.
Hydra может принять дополнительный файл конфигурации JSON для конкретных параметров, например:
{
"OK" : [
200 ,
999 ,
403
],
"attrs" : [
" href "
],
"exclude_scheme_prefixes" : [
" tel "
],
"tags" : [
" a " ,
" img "
],
"threads" : 25 ,
"timeout" : 30 ,
"graceful_exit" : " True "
}Чтобы использовать файл конфигурации, предоставьте имя файла:
python hydra.py https://example.com --config ./hydra-config.jsonВозможные настройки:
OK - коды ответов HTTP, которые следует учитывать как успешную проверку ссылки. По умолчанию [200, 999] .attrs - Атрибуты тегов HTML для проверки ссылок. По умолчанию ["href", "src"] .exclude_scheme_prefixes - префиксы схемы HTTP, чтобы исключить из проверки. По умолчанию ["tel:", "javascript:"] .tags - HTML -теги для проверки на получение ссылок. По умолчанию ["a", "link", "img", "script"] .threads - максимальные работники для бега. По умолчанию до 50 .timeout - максимум секунды, чтобы дождаться ответа HTTP. По умолчанию до 60 .graceful_exit - если установлено в True , и есть нарушенные ссылки. Приведенные exit code 0 else return exit code 1 . Бегать:
python -m unittest tests/test.py