Иногда приходится скачивать страницу сайта целиком. Если сделать это через обычный браузер, с помощью кнопки "Сохранить как", то страница загрузится не полностью. Но на Linux есть отличная программа - wget. Она поможет скачать все важные файлы, которые как-либо связаны со страницей сайта.
Если сохранять страницу сайта через браузер, то:
- Не сохранятся файлы шрифтов
- Будут отсутствовать файлы, на которые даны ссылки в стилях css (фоновые картинки и т.п.)
- У всех файлов будет изменено положение хранения - всё будет уложено в одну папку. Будет мешанина из файлов
Чтобы скачать страницу целиком (титульную этого сайта) и правильно разложить все ресурсы по папкам выполним следующую команду:
wget -p -k -e robots=off https://www.alexgur.ru/
Увидим как программа не только скачает всю страницу, но и расфасует файлы по папкам. В том порядке, в котором они лежат на сервере:
Теперь подробнее о ключах:
-p, --page-requisites загружает все статичные файлы, необходимые для отображения HTML-страницы
-k, --convert-links делает ссылки локальными в HTML и CSS
-e robots=off , - просит не обращать внимания на файл robots.txt. Нужна, если сайт закрыт от индексации. Иначе скачается одна страница с надписью "этот сайт закрыт для индексации"
На вики есть описание как скачать весь сайт целиком, рекурсивно с заданной глубиной.
Скачать сайт, который закрыт паролем через .htaccess
У меня вебстудия без офиса. Все сотрудники работают удалённо. И частенько бывает, что верстальщик делает свою работу на закрытом сервере и забывает присылать мне zip архив с готовыми файлами. Поэтому самостоятельно скачиваю весь сайт даже из закрытого паролем раздела:
wget -p -k -e robots=off https://www.alexgur.ru/ --user=LOGIN --password=PASS --auth-no-challenge
Команда выглядит аналогично простому скачиванию. Добавилась только последняя часть:
--user=LOGIN , - логин для доступа через htaccess
--password=PASS , - пароль для доступа
--auth-no-challenge , - указывает на необходимость пересылки логина и пароля при каждом запросе файла. Эта опция нежелательна. Но помогает если сервер старый и неадекватно себя ведёт.