Как загрузить весь веб-сайт для просмотра в автономном режиме с помощью Wget?

Я хотел бы загрузить весь относительно небольшой веб-сайт (~50 страниц) для просмотра в автономном режиме.

Я мог бы вручную открыть каждую страницу в браузере и загрузить их через ctrl + s, и это привело бы к желаемому результату. Но это заняло бы очень много времени с веб-сайтом такого размера, заняло бы много времени на организацию, и было бы много места для человеческих ошибок (отсутствующие страницы, страницы, помещенные в неправильные каталоги и т.д.)

Wget и его рекурсивная функциональность кажется отличным решением, но у меня возникли проблемы с получением желаемого результата.

Желаемый результат.

Каждая отдельная страница в одном домене и все необходимые ресурсы каждой страницы (которые могут находиться в других доменах) для загрузки. Больше ничего.

Проблема

Множество необходимых ресурсов находится на внешних доменах. Эти домены многочисленны, могут измениться в любое время, и получить точный список непросто из.

Моя лучшая попытка

Я попробовал эту команду:

wget -r -k -p -H -l inf -w 1 --limit-rate=40k -H -e robots=off https://my.desired.website/

  • -r используется для рекурсивной загрузки страниц.
  • -k используется для преобразования ссылок для упрощенного просмотра в автономном режиме.
  • -p используется для указания Wget загружать необходимые ресурсы.
  • -H позволяет охватывать хост без ограничений.
  • -l inf используется для уверенности в том, что каждая отдельная страница на нужном веб-сайте будет загружена, независимо от того, насколько глубоко она находится иерархия это может быть.
  • -w 1 --limit-rate=40k используется для ограничения скорости и скорости загрузки, чтобы не быть грубым по отношению к хостам.
  • -e robots=off говорит Wget игнорировать"robots.txt "файлы и ссылки "не подписываться".

К сожалению, из-за флага -H эта команда не только загружает каждую отдельную страницу нужного веб-сайта, но и продолжает переходить по всем внешним ссылкам и загружать все найденные веб-сайты целиком. Это, скорее всего, приведет к попытке загрузить всю общедоступную веб.

Однако без флага -H он не загружает внешние ресурсы, необходимые для просмотра веб-сайта (т.Е. Изображения, JS, CSS и т.д., Размещенные на внешних доменах)

Затем вы можете сказать, что я должен использовать флаг -D и внести в белый список все домены, в которых хранятся внешние ресурсы. Это также не лучшее решение, потому что у меня нет полного контроля над тем, где размещен веб-сайт... список внешних доменов, на которых размещены ресурсы, может измениться в любой момент времени, и я не могу надежно найти каждый домен вручную, не пропуская ни одного.

"Реальный" вопрос

Поэтому, по сути, мой вопрос таков:

Возможно ли разрешить Wget охватывать хосты только при загрузке необходимых ресурсов?

Если нет, то есть ли инструмент, который позволяет этот тип загрузки?