Притворись, что я хотел, чтобы простая копия страницы была загружена на мой HD для постоянного хранения. Я не ищу глубокую рекурсивную загрузку, просто одну страницу, но также и любые ресурсы, загружаемые этой страницей, для загрузки.
Пример: https://www.tumblr.com/
Ожидать:
- Index.html
- Любые загруженные изображения
- Любые загруженные файлы JS
- Любые загруженные файлы CSS
- Любые изображения, загруженные в файл CSS
- ссылки на ресурсы страницы, локализованные для работы с загруженными копиями (без веб-зависимости)
Мне интересно знать, можете ли вы помочь мне найти лучший синтаксис wget или другой инструмент, который сделает это. Инструменты, которые я пробовал, обычно не загружают изображения с помощью CSS, поэтому страница никогда не выглядит правильно при локальной загрузке. Спасибо!
Касательное решение
Я нашел способ сделать это с помощью FireFox. Сохранение по умолчанию не работает, и есть дополнение, которое называется «Сохранить завершено», которое, очевидно, может с этим справиться. Тем не менее, вы не можете скачать его, потому что он говорит, что он не поддерживается в текущей версии Firefox. Причина в том, что он был свернут в это дополнение: «Формат архива Mozilla». Установите это, затем, когда вы используете File> «Save Page As ..», появляется новая опция, называемая «Web Page, complete», которая по сути является старым аддоном, который исправляет стандартную реализацию, используемую FireFox (что ужасно). Это не решение WGET, но оно обеспечивает работоспособное решение.
РЕДАКТИРОВАТЬ: Еще одна нелепая проблема для тех, кто может последовать за этим вопросом в будущем, пытаясь сделать это. Чтобы заставить аддон работать должным образом, вам нужно Инструменты> Формат архива Mozilla и изменить (ужасный) параметр по умолчанию «сделать точный снимок страницы» на «сохранить сценарии и исходный код с помощью команды« Сохранить завершено »», в противном случае аддон опустошит все ваши файлы скриптов и замените их текстом "/ * Скрипт удален с помощью сохранения снимка * /".
Ответы:
wget -p -k http://ExampleSite.com
-P даст вам все необходимые элементы для правильного просмотра сайта (CSS, изображения и т. Д.). -K изменит все ссылки (включая ссылки для CSS и изображений), чтобы вы могли просматривать страницу в автономном режиме, как она появилась в Интернете.
Обновление: это характерно для вашего примера сайта: tumblr.com
Разбивка:
-H = позволяет wget охватить чужой хост. Требуется, поскольку у tumblr нет изображений на главной странице по тому же адресу, они используют secure.assets.tumblr.com, см. Примечание об исключении доменов.
-N = будет захватывать только те файлы, которые новее, чем у вас сейчас, в случае, если вы снова загружаете ту же страницу через какое-то время
-k = конвертировать ваши ссылки для правильного просмотра в автономном режиме
-p = захватывает все необходимые элементы для правильного просмотра (CSS, изображения и т. д.)
--exclude-domains =, поскольку на домашней странице tumblr.com есть ссылка на quantserve.com, и я предполагаю, что вы не хотите этого материала, вам нужно исключить его из загрузки wget. Примечание : это очень важный момент, который вы должны использовать с -H, потому что если вы заходите на сайт и у него есть несколько ссылок на внешние хосты (например, рекламодатели и аналитики), то вы тоже получите этот материал!
--no-check-Certificate требуется, так как Tumblr использует https
-U меняет пользовательский агент. В данном случае это не обязательно, так как он позволяет использовать пользовательский агент wget по умолчанию, но я знаю, что некоторые сайты его блокируют. Я просто добавил это здесь, на случай, если у вас возникнут проблемы на других сайтах. В приведенном мной фрагменте кода он выглядит как Mozilla Firefox 6.02a.
наконец у вас есть сайт: https://www.tumblr.com
источник
Для конкретного сайта, который вы упомянули, и многих других, закодированных как это, wget (и curl) просто не будет работать. Проблема заключается в том, что некоторые ссылки на ресурсы, необходимые для отображения страницы в браузере, сами создаются с помощью javascript. Wget имеет запрос на функцию в ожидании запуска JavaScript:
http://wget.addictivecode.org/FeatureSpecifications/JavaScript
Однако до тех пор, пока это не будет завершено, сайты, которые создают ссылки на ресурсы с использованием javascript, не будут клонироваться с помощью wget. Самое простое решение - найти инструмент, который на самом деле создает DOM и анализирует javascript как движок браузера (то есть метод firefox, который вы упомянули).
источник
Вы также можете сделать это автоматически (или программно, если вы делаете кодирование), введя команду через оболочку с помощью wget:
Он загрузит страницу и внутренние файлы и сделает ссылки локальными.
источник
Я думаю, что хватит всего, но попробую и узнаю.
источник
$ ( man wget ):
источник