Нередко возникает необходимость получить копию сайта, например, чтобы получить доступ к нему без сети, локально на компьютере.
Существует не один способ, но мы разберем на примере один вариант для Linux, просто потому что мы находимся в соответствующем разделе.
Для нашей задачи будем использовать широко популярную утилиту WGET, работающая в терминале linux и включенной по умолчанию почти во все дистрибутивы, кстати есть и версия под windows, без GUI, так же расчитанная для работы в консоли.
Wget – Бесплатная консольная утилита предназначенная для скачивания файлов по сети, обладающая широкими возможностями, в Windows среде такие программы называются менеджер загрузок или менеджер закачек.
Утилита, поддерживая все современные протоколы передачи данных, такие как HTTP,HTTPS,FTP и другие, так же поддерживается работа через прокси серверы.
Открываем терминал в линукс и набираем команду:
wget
В ответ получим
wget: отсутствует URL Использование: wget [ПАРАМЕТР]... [URL]... Дополнительные параметры выводятся по команде «wget --help».
Есть результат будет другим, на вроде этого
bash: wget: команда не найдена
Это означает что утилита отсутствует в системе и требуется установка из пакетов, репозиториев или исходников, все зависит от того какая у вас операционная система
Ubuntu: apt install wget или apt-get install wget
Centos: yum install wget
Freebsd: cd /usr/ports/ftp/wget && make install clean
Debian: apt-get install wget
И так готово, утилита установлена и готова к плодотворной работе, теперь выбираем нужный нам сайт, например, site.ru:
Переходим в папку где будет расположен наш сайт
cd /var/www/
В терминале вводим:
wget -r -k -l 5 –p -o log.txt -E -nc http://site.ru
Начнется загрузка html, css, xml, txt, и других файлов с сайта, обратите внимание если на сайте присутствуют файлы больших размеров, убедитесь, что место на диске будет достаточно, либо указать какие файлы можно скачивать а какие нет, ключи приведу ниже. (в моем случае сайт выдал 503 ошибку и загрузка приостановилась.)
Разберем ключи:
Внимание! Ключи регистр зависимые.
-
-r - рекурсивный обход.
-
-P - путь к папке куда загружать файлы, например, wget –P /usr/home/
-
-b – Фоновый режим загрузки.
-
-c – Продолжить загрузку с того же места, в случае обрыва соединения.
-
-l - Глубина рекурсии, обычно для сайта подойдет 4-7, пример wget -l 4 https://site.ru
-
-k – важнейший параметр, формирует ссылки в относительные, без таких ссылок на страницах локальной копии сайта будет перекидывать на домен site.ru и вы прост оне сможете переходить по ссылкам внутри сайта.
-
-E – Создает расширение .HTML
-
-R – Параметр позволяет исключить из загрузки файлы по маске, например:
-
wget –R “*.rar” http://site.ru
В принципе все, после того как программа завершит скачивания сайта, можно будет открывать и смотреть.
Не исключены проблемы с разного рода JS встроенными скриптам и не загружаются картинки из стилей css, так что не ждите “идеальной копии сайта”.
Комментарии на сайте доступны только для зарегистрированных пользователей, вы можете пройти регистрацию или войти с помощью социальных сетей, если у вас еще нет аккаунта.