Проверка неработающих ссылок локально на статическом веб-сайте (используя wget?)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проверка неработающих ссылок локально на статическом веб-сайте (используя wget?)

Сообщение Anonymous »

Очень хороший инструмент для проверки неработающих ссылок (например, ссылок, указывающих на ошибку 404) — wget --spider. Однако у меня немного другой вариант использования: я создаю статический веб-сайт и хочу проверить наличие неработающих ссылок перед загрузкой. Точнее, я хочу проверить обе: Я попробовал wget --spider --force-html - i file-to-check.html, который читает локальный файл, рассматривает его как HTML и переходит по каждой ссылке. К сожалению, он не может работать с относительными ссылками в локальном HTML-файле (ошибки «Невозможно разрешить неполную ссылку some/file.pdf»). Я пробовал использовать file://, но wget его не поддерживает.
В настоящее время у меня есть хак, основанный на запуске локального веб-сервера через python3 http.server. и проверка локальных файлов через HTTP:

Код: Выделить всё

python3 -m http.server &
pid=$!
sleep .5
error=0
wget --spider -nd -nv -H -r -l 1 http://localhost:8000/index.html || error=$?
kill $pid
wait $pid
exit $error
Меня это не очень устраивает по нескольким причинам:
  • Мне нужен этот сон .5 , чтобы дождаться готовности веб-сервера. Без него скрипт провалится, но я не могу гарантировать, что 0,5 секунды будет достаточно. Я бы предпочел иметь возможность запускать команду wget, когда сервер готов.
  • И наоборот, это убивает $pid выглядит некрасиво.
В идеале у python3 -m http.server должна быть такая опция для запуска команды, когда сервер готов и отключится после завершения команды. Кажется, что это выполнимо, если немного написать на Python, но мне интересно, существует ли более чистое решение.
Я что-нибудь пропустил? Есть ли лучшее решение? Я упоминаю wget в своем вопросе, потому что он делает почти то, что я хочу, но использование wget не является для меня обязательным требованием (как и python -m http.server). Мне просто нужно что-то, что можно легко запускать и автоматизировать в Linux.

Подробнее здесь: https://stackoverflow.com/questions/492 ... using-wget
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»