Как скачать весь сайт себе на компьютер

Эта статья более лаконична чем предыдущие статьи. Если коротко — Как скачать сайт целиком с помощью wget и какие команды нужно выполнить:

wget --mirror -p --convert-links -P {ваш_каталог} {адрес_сайта}
# например, 
# каталог: ~/Download/ 
# сайт: https://site.ru/index.html

Ранее я делал так, что избыточно

wget -r -k -l 7 -p -E -nc http://www.site.com/

Используемые параметры для wget

GNU Wget 1.21.2, программа автоматического получения файлов по сети.
Использование: wget [ПАРАМЕТР]... [URL]...

Обязательные аргументы для длинных параметров являются обязательными и для коротких параметров.

Запуск:
  -V,  --version           показать версию Wget и завершить работу
  -h,  --help              показать эту справку
  -b,  --background        после запуска перейти в фоновый режим
  -e,  --execute=КОМАНДА   выполнить команду в стиле «.wgetrc»

Журналирование и входной файл:
  -o,  --output-file=ФАЙЛ    записывать сообщения в ФАЙЛ
  -a,  --append-output=ФАЙЛ  дописывать сообщения в конец ФАЙЛА
  -d,  --debug               показать много отладочной информации
  -q,  --quiet               ничего не выводить
  -v,  --verbose             показывать подробные сведения (по умолчанию)
  -nv, --no-verbose          отключить вывод подробных сведений (не полностью)
       --report-speed=ТИП    единицы измерения пропускной способности
                             определить ТИПОМ. ТИП может быть равно bits
  -i,  --input-file=ФАЙЛ     загрузить URL-ы согласно локальному
                             или внешнему ФАЙЛУ
  -F,  --force-html          считать, что входной файл — HTML
  -B,  --base=URL            считать, что ссылки из входного файла (-i -F)
                             указаны относительно URL
       --config=ФАЙЛ         задать файл настроек
       --no-config           не читать файлы настроек
       --rejected-log=ФАЙЛ   протоколировать причины отброса URL в ФАЙЛ

Загрузка:
  -t,  --tries=ЧИСЛО             установить ЧИСЛО повторных попыток
                                 (0 без ограничения)
       --retry-connrefused       повторять, даже если в подключении отказано
       --retry-on-http-error=ОШИБКИ
                                   список (через запятую) ошибок HTTP,
                                   вызывающих повтор
  -O,  --output-document=ФАЙЛ    записывать документы в ФАЙЛ
  -nc, --no-clobber              пропускать загрузки, которые приведут к
                                 загрузке уже существующих файлов
                                 (и их перезаписи)
       --no-netrc                  не пытаться получить данные из .netrc
  -c,  --continue                возобновить загрузку частично загруженного
                                 файла
       --start-pos=СМЕЩЕНИЕ      начинать загрузку со СМЕЩЕНИЯ (считается с 0)
       --progress=ТИП            выбрать тип индикатора выполнения
       --show-progress           показывать индикатор выполнения в любом
                                 режиме подробности
  -N,  --timestamping            не загружать повторно файлы, только если они
                                 не новее, чем локальные
       --no-use-server-timestamps    не использовать проверку
                                 if-modified-since для запросов в режиме учёта
                                 меток времени
       --no-use-server-timestamps     не устанавливать метку времени локальному
                                 файлу, полученную с сервера
  -S,  --server-response         вывод ответа сервера
       --spider                  ничего не загружать
  -T,  --timeout=СЕКУНДЫ         установка значений всех тайм-аутов равными
                                 числу СЕКУНД
       --dns-timeout=СЕК         установка тайм-аута поиска в DNS в СЕК
       --connect-timeout=СЕК     установка тайм-аута подключения в СЕК
       --read-timeout=СЕК        установка тайм-аута чтения в СЕК
  -w,  --wait=СЕКУНДЫ            пауза в СЕКУНДАХ между загрузками
                                 (при загрузке более 1 URL)
       --waitretry=СЕКУНДЫ       пауза в 1..СЕКУНДЫ между повторными
                                 попытками загрузки (при загрузке более 1 URL)
       --random-wait             пауза в 0.5*WAIT...1.5*WAIT секунд
                                 между загрузками (при загрузке более 1 URL)
       --no-proxy                явно выключить прокси
  -Q,  --quota=ЧИСЛО             установить величину квоты загрузки в ЧИСЛО
       --bind-address=АДРЕС      привязать АДРЕС (имя компьютера или IP)
                                 локального компьютера
       --limit-rate=СКОРОСТЬ     ограничить СКОРОСТЬ загрузки
       --no-dns-cache            отключить кэширование DNS-запросов
       --restrict-file-names=ОС  использовать в именах файлов символы,
                                 допустимые в ОС
       --ignore-case             игнорировать регистр при сопоставлении
                                 файлов и/или каталогов
  -4,  --inet4-only              подключаться только к адресам IPv4
  -6,  --inet6-only              подключаться только к адресам IPv6
       --prefer-family=СЕМЕЙСТВО подключаться сначала к адресам указанного
                                 семейства (может быть IPv6, IPv4 или ничего)
       --user=ПОЛЬЗОВАТЕЛЬ       установить и ftp- и http-пользователя в
                                 ПОЛЬЗОВАТЕЛЬ
       --password=ПАРОЛЬ         установить ftp- и http-пароль в ПАРОЛЬ
       --ask-password            запрашивать пароли
       --use-askpass=КОМАНДА     указать обработчик мандатов для запроса 
                                 имени пользователя и пароля. Если 
                                 КОМАНДА не указана, то используется 
                                 переменная окружения WGET_ASKPASS 
                                 или SSH_ASKPASS.
       --no-iri                  выключить поддержку IRI
       --local-encoding=КДР      использовать КДР как локальную кодировку
                                 для IRI
       --remote-encoding=КДР     использовать КДР как удалённую кодировку
                                 по умолчанию
       --unlink                  удалить файл перед затиранием
       --xattr                   включить хранилище метаданных в
                                 расширенных файловых атрибутах

Каталоги:
  -nd, --no-directories           не создавать каталоги
  -x,  --force-directories        принудительно создавать каталоги
  -nH, --no-host-directories      не создавать каталоги как на узле
       --protocol-directories     использовать имя протокола в каталогах
  -P,  --directory-prefix=ПРЕФИКС сохранять файлы в ПРЕФИКС/..
       --cut-dirs=ЧИСЛО           игнорировать ЧИСЛО компонентов удалённого
                                  каталога

Параметры HTTP:
       --http-user=ПОЛЬЗОВ.    установить http-пользователя в ПОЛЬЗОВАТЕЛЬ
       --http-password=ПАРОЛЬ  установить http-пароль в ПАРОЛЬ
       --no-cache              отвергать кэшированные сервером данные
       --default-page=ИМЯ      изменить имя страницы по умолчанию (обычно
                               это «index.html»)
  -E,  --adjust-extension      сохранять документы HTML/CSS с надлежащими
                               расширениями
       --ignore-length         игнорировать поле заголовка «Content-Length»
       --header=СТРОКА         вставить СТРОКУ между заголовками
       --compression=ТИП       тип сжатия: auto, gzip или none
                               (по умолчанию: none)
       --max-redirect          максимально допустимое число перенаправлений
                               на страницу
       --proxy-user=ПОЛЬЗОВ.   установить ПОЛЬЗОВАТЕЛЯ в качестве имени
                               пользователя для прокси
       --proxy-password=ПАРОЛЬ   установить ПАРОЛЬ в качестве пароля для
                               прокси
       --referer=URL           включить в HTTP-запрос заголовок «Referer: URL»
       --save-headers          сохранять HTTP-заголовки в файл
  -U,  --user-agent=АГЕНТ      идентифицировать себя как АГЕНТ вместо
                               Wget/ВЕРСИЯ
       --no-http-keep-alive    отключить поддержание активности HTTP
                               (постоянные подключения)
       --no-cookies            не использовать кукисы
       --load-cookies=ФАЙЛ     загрузить кукисы из ФАЙЛА перед сеансом
       --save-cookies=ФАЙЛ     сохранить кукисы в ФАЙЛ после сеанса
       --keep-session-cookies  загрузить и сохранить кукисы сеанса
                               (непостоянные)
       --post-data=СТРОКА      использовать метод POST; отправка СТРОКИ в
                               качестве данных
       --post-file=ФАЙЛ        использовать метод POST; отправка содержимого
                               ФАЙЛА
       --method=HTTPMethod     использовать метод «HTTPMethod» в заголовке
       --body-data=СТРОКА      отправка СТРОКИ в качестве данных;
                               ДОЛЖЕН быть указан параметр --method
       --body-file=ФАЙЛ        отправка содержимого ФАЙЛА;
                               ДОЛЖЕН быть указан параметр --method
       --content-disposition   учитывать заголовок Content-Disposition
                               при выборе имён для локальных файлов
                               (ЭКСПЕРИМЕНТАЛЬНЫЙ)
       --content-on-error      выводить принятые данные при ошибках сервера
       --auth-no-challenge     отправлять информацию об аутентификации
                               Basic HTTP не дожидаясь первого ответа
                               сервера

Параметры HTTPS (SSL/TLS):
       --secure-protocol=ПР     выбор протокола безопасности: auto, SSLv2,
                                SSLv3, TLSv1, TLSv1_1, TLSv1_2 или PFS
       --https-only             переходить только по безопасным ссылкам HTTPS
       --no-check-certificate   не проверять сертификат сервера
       --certificate=FILE       файл сертификата пользователя
       --certificate-type=ТИП   тип сертификата пользователя: PEM или DER
       --private-key=ФАЙЛ       файл секретного ключа
       --private-key-type=ТИП   тип секретного ключа: PEM или DER
       --ca-certificate=ФАЙЛ    файл с набором CA
       --ca-directory=КАТ       каталог, в котором хранится список CA
       --crl-file=ФАЙЛ          файл с набором CRL
       --pinnedpubkey=ФАЙЛ/ХЭШИ  Файл с открытым ключом (PEM/DER) или любое
                                 количество хэшей sha256 в виде base64,
                                 начинающихся с «sha256//» и разделённых «;»,
                                 по которым проверяется ответный узел
       --random-file=ФАЙЛ       файл со случайными данными для SSL PRNG

       --ciphers=СТРОКА         назначить строку приоритета (GnuTLS) или
                                список шифров (OpenSSL) непосредственным
                                образом. Использовать осторожно. Данный
                                параметр заменяет значение --secure-protocol.
                                Формат и синтаксис строки зависит от
                                используемой библиотеки SSL/TLS.
Параметры HSTS:
       --no-hsts               отключить HSTS
       --hsts-file             путь к базе данных HSTS (заменит значение
                               по умолчанию)

Параметры FTP:
       --ftp-user=ПОЛЬЗОВАТЕЛЬ установить ftp-пользователя в ПОЛЬЗОВАТЕЛЬ
       --ftp-password=ПАРОЛЬ   установить ftp-пароль в ПАРОЛЬ
       --no-remove-listing     не удалять файлы «.listing»
       --no-glob               выключить маски для имён файлов FTP
       --no-passive-ftp        отключить «пассивный» режим передачи
       --preserve-permissions  сохранять права доступа удалённых файлов
       --retr-symlinks         при рекурсии загружать файлы по ссылкам
                               (не каталоги)

Параметры FTPS:
       --ftps-implicit                 безусловно использовать FTPS (порт
                                       по умолчанию — 990)
       --ftps-resume-ssl               возобновлять сеанс SSL/TLS, начатый
                                       в канале управления, при открытии
                                       канала данных
       --ftps-clear-data-connection    шифровать только канал управления;
                                       данные не шифруются
       --ftps-fallback-to-ftp          вернуться к FTP, если FTPS не
                                       поддерживается сервером
Параметры WARC:
       --warc-file=ФАЙЛ          записать данные запроса/ответа в файл .warc.gz
       --warc-header=СТРОКА      вставить СТРОКУ в запись warcinfo
       --warc-max-size=ЧИСЛО     максимальный размер файлов WARC равен ЧИСЛУ
       --warc-cdx                записать индексные файлы CDX
       --warc-dedup=ФАЙЛ         не сохранять записи, перечисленные в файле CDX
       --no-warc-compression     не сжимать файлы WARC с помощью GZIP
       --no-warc-digests         не вычислять дайджесты SHA1
       --no-warc-keep-log        не сохранять файл журнала в записи WARC
       --warc-tempdir=КАТАЛОГ    расположение для временных файлов,
                                 создаваемых процедурой записи WARC

Рекурсивная загрузка:
  -r,  --recursive          включение рекурсивной загрузки
  -l,  --level=ЧИСЛО        глубина рекурсии (inf и 0 — бесконечность)
       --delete-after       удалять локальные файлы после загрузки
  -k,  --convert-links      делать ссылки локальными в загруженном
                            HTML или CSS
       --convert-file-only  преобразовывать только файловую часть URL
                            (базовую часть имени)
       --backups=N               перед записью файла X, ротировать до N
                            резервных файлов
  -K,  --backup-converted   перед преобразованием файла X делать резервную
                            копию в виде X.orig
  -m,  --mirror             короткий параметр, эквивалентный
                            -N -r -l inf --no-remove-listing
  -p,  --page-requisites    загрузить все изображения и проч., необходимые
                            для отображения HTML-страницы
       --strict-comments    включить строгую (SGML) обработку комментариев
                            HTML

Разрешения/запреты при рекурсии:
  -A,  --accept=СПИСОК             список разрешённых расширений
                                   через запятую
  -R,  --reject=СПИСОК             список запрещённых расширений,
                                   разделённых запятыми.
       --accept-regex=РЕГВЫР       регулярное выражение для разрешённых URL
       --reject-regex=РЕГВЫР       регулярное выражение для запрещённых URL
       --regex-type=ТИП            тип регулярного выражения (posix|pcre)
  -D,  --domains=СПИСОК            список разрешённых доменов,
                                   через запятую
       --exclude-domains=СПИСОК    список запрещённых доменов,
                                   через запятую
       --follow-ftp                следовать по ссылкам FTP в HTML-документах
       --follow-tags=СПИСОК        список используемых тегов HTML,
                                   через запятую
       --ignore-tags=СПИСОК        список игнорируемых тегов HTML,
                                   через запятую
  -H,  --span-hosts                заходить на чужие узлы при рекурсии
  -L,  --relative                  следовать только по относительным ссылкам
  -I,  --include-directories=СПИСОК список разрешённых каталогов
       --trust-server-names  использовать имя, указанное в перенаправляющем URL,
                        в качестве последнего компонента.
  -X,  --exclude-directories=СПИСОК список исключаемых каталогов
  -np, --no-parent                 не подниматься в родительский каталог

Сообщения об ошибках, вопросы и пожелания отправляйте на <bug-wget@gnu.org>
и/или откройте проблему на https://savannah.gnu.org/bugs/?func=additem&group=wget.

Вишенка на торте

Мои рекомендации полезной информации всем кто связан с внедрение ИТ на производстве.

Попробуйте скачать, а потом поизучать SADT (Технология структурного анализа и проектирования). Полезно для документирования и дальнейшего использования в автоматизации бизнеспроцессов и создания документации и инструкций.

wget --mirror -p --convert-links -P ~/Download/ https://ami.nstu.ru/~vms/SADT_Ross/html/index.html
Опубликовано в категории: БЛОГ