Еще в 90-х я использовал Teleport Pro .
Что в наши дни было бы правильным способом сохранить полную копию веб-сайта?
(в т.ч. файлы из CDN/шрифты/исходники/носители)
Одним из вариантов было бы написать простое приложение Node.js с использованием модулей npm, таких как request
или cheerio
, но я не хочу изобретать велосипед.
(поэтому и спрашиваю)
Я в основном на Mac, могу использовать Windows, если программное обеспечение того стоит.
Вы можете использовать GNU wget :
brew install wget
)Чтобы создать автономную копию веб-сайта (также известную как его зеркальное отображение), используйте
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 .
Вы можете использовать HTTrack Website Copier :
+*.css
, это иногда приводит к тому, что приложение пытается загрузить весь Интернет! Арх. Вам нужно указать сложные правила включения/исключения, чтобы обойти это. Жаль, что они не сделали это так болезненно. 😒... как правильно сохранить полную копию веб-сайта?
Короткий ответ заключается в том, что это вообще невозможно (в смысле «полного»), за исключением статических HTML-сайтов.
Сегодняшние современные «отзывчивые» сайты полагаются на JS, который динамически обновляет DOM с помощью AJAX, и если вы не готовы выполнить этот JS и повторно отобразить DOM, вы не получите полный сайт.
Чтобы понять, что я имею в виду, подумайте, что значит «сохранить полную копию», скажем, maps.google.com.
offline
копии в реальном времени. Текущего снимка будет достаточно.
Франк Дернонкур
Марс Робертсон
Франк Дернонкур