Как создать автономную копию сайта?

Еще в 90-х я использовал Teleport Pro .

Что в наши дни было бы правильным способом сохранить полную копию веб-сайта?

(в т.ч. файлы из CDN/шрифты/исходники/носители)


Одним из вариантов было бы написать простое приложение Node.js с использованием модулей npm, таких как requestили cheerio, но я не хочу изобретать велосипед.

(поэтому и спрашиваю)

Я в основном на Mac, могу использовать Windows, если программное обеспечение того стоит.

В чем проблема с Teleport Pro?
Не уверен, какова цель вопроса. На самом деле я обновился с Word 2.0 до Windows 3.11 и надеялся, что есть современные приложения, отвечающие моим потребностям... (Я помню, у меня были некоторые проблемы)
Мне просто было любопытно узнать, как работает Teleport Pro в настоящее время (например, проблемы с новой ОС или новыми веб-технологиями?), поскольку я также использовал его десять лет назад :) wget и HTTrack Website Copier тоже довольно старые, кстати.

Ответы (3)

Вы можете использовать GNU wget :

  • бесплатно и с открытым исходным кодом
  • Linux, Windows , Mac ( brew install wget)
  • CLI

Чтобы создать автономную копию веб-сайта (также известную как его зеркальное отображение), используйте

wget --mirror --page-requisites --convert-links http://stackexchange.com
  • --mirror: этот параметр включает параметры, подходящие для зеркального отображения. Эта опция включает рекурсию и отметку времени, устанавливает бесконечную глубину рекурсии и сохраняет списки каталогов FTP. В настоящее время он эквивалентен-r -N -l inf --no-remove-listing.
  • --page-requisites: этот параметр заставляет Wget загружать все файлы, необходимые для правильного отображения данной HTML-страницы. Сюда входят такие вещи, как встроенные изображения, звуки и таблицы стилей, на которые ссылаются.
  • --convert-links: после завершения загрузки преобразуйте ссылки в документе, чтобы сделать их пригодными для локального просмотра. Это влияет не только на видимые гиперссылки, но и на любую часть документа, которая ссылается на внешнее содержимое, такое как встроенные изображения, ссылки на таблицы стилей, гиперссылки на содержимое, отличное от HTML, и т. д.

К вашему сведению: функциональные возможности JavaScript для Wget .

Ссылка Windows wget устарела — эта версия неправильно поддерживает SSL. Более свежие версии можно получить на сайте everlybored.org/misc/wget.

Вы можете использовать HTTrack Website Copier :

  • бесплатный и с открытым исходным кодом (Стандартная общественная лицензия GNU, версия 3)
  • Линукс, Виндовс, Мак
  • графический интерфейс

введите описание изображения здесь

введите описание изображения здесь

Эй, это то, что я собирался порекомендовать, когда увидел этот вопрос;)
@NickWilde Да, это довольно приятное приложение, но меня всегда бесило нелепое ограничение пропускной способности по умолчанию, поэтому вместо этого я рекомендую wget :)
К сожалению, HTTrack по умолчанию не загружает CSS, JS или изображения. Если вы попытаетесь включить их с помощью правила включения, такого как +*.css, это иногда приводит к тому, что приложение пытается загрузить весь Интернет! Арх. Вам нужно указать сложные правила включения/исключения, чтобы обойти это. Жаль, что они не сделали это так болезненно. 😒

... как правильно сохранить полную копию веб-сайта?

Короткий ответ заключается в том, что это вообще невозможно (в смысле «полного»), за исключением статических HTML-сайтов.

Сегодняшние современные «отзывчивые» сайты полагаются на JS, который динамически обновляет DOM с помощью AJAX, и если вы не готовы выполнить этот JS и повторно отобразить DOM, вы не получите полный сайт.

Чтобы понять, что я имею в виду, подумайте, что значит «сохранить полную копию», скажем, maps.google.com.

Действительно, например, у wget есть проблемы с JS: wget.addictivecode.org/FeatureSpecifications/JavaScript .
Именно так. Вот почему я ищу программу, которая может сделать это за меня... :) #lazy
Вы упустили мою мысль. Что такое «автономная копия» веб-сайта с динамическим контентом, который меняется каждые несколько минут (например, cnn.com)?
Я не ожидаю обновлений offlineкопии в реальном времени. Текущего снимка будет достаточно.