Иногда возникает ситуация что Вам необходимо скачать какой либо сайт целиком. Ситуации бывают разные, например для просмотра в оффлайн режиме, либо для бэкапа вашего сайта.
Простая команда для скачивания сайта целиком:
wget -r -k -l 7 -p -E -nc example.com
Теперь расшифровка атрибутов:
- -r — указывает на то, что нужно рекурсивно переходить по ссылкам на сайте, чтобы скачивать страницы.
- -k — используется для того, чтобы wget преобразовал все ссылки в скаченных файлах таким образом, чтобы по ним можно было переходить на локальном компьютере (в автономном режиме).
- -p — указывает на то, что нужно загрузить все файлы, которые требуются для отображения страниц (изображения, css и т.д.).
- -l — определяет максимальную глубину вложенности страниц, которые wget должен скачать (по умолчанию значение равно 5, в примере мы установили 7). В большинстве случаев сайты имеют страницы с большой степенью вложенности и wget может просто «закопаться», скачивая новые страницы. Чтобы этого не произошло можно использовать параметр -l.
- -E — добавлять к загруженным файлам расширение .html.
- -nc — при использовании данного параметра существующие файлы не будут перезаписаны. Это удобно, когда нужно продолжить загрузку сайта, прерванную в предыдущий раз.
Если вывод этой команды заканчивается например так:
HTTP-запрос отправлен. Ожидание ответа… 403 Forbidden
2018-10-04 09:35:42 ОШИБКА 403: Forbidden.
Это может означать одно, что доступ к сайту запрещен для скачивания утилитой wget. Для обхода ограничения притворимся другим юзер-агентом:
wget -r -k -l 7 -p -E -nc --user-agent="Mozilla/5.0 (Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36" https://example.com/
В итоге получаем директорию с именем example.com с содержимом сайта.
P.S. wget — очень мощная утилита, её функционал можно долго изучать.
[endtxt]