Команда wget позволяет быстро сделать локальную копию сайта для офлайн-просмотра, бэкапа или анализа структуры. Ниже — базовый пример команды для зеркалирования сайта с сохранением структуры и ссылок, а также более вежливый вариант, который не создаёт лишней нагрузки на сервер.
Базовая команда для копирования сайта
Пример команды для копирования сайта https://site-domain.test в каталог ./test:
wget -p -m -k -P ./test https://site-domain.test
-
-p— скачивает все ресурсы, необходимые для корректного отображения страниц: стили (CSS), скрипты (JS), изображения и другие вложения. -
-m(mirror) — включает режим зеркала:-r— рекурсивная загрузка (обход ссылок на страницах);-N— не перекачивает файлы, если они не изменились на сервере;-l inf— глубина рекурсии без ограничений.
-
-k— переписывает ссылки внутри HTML-файлов так, чтобы они указывали на локальные файлы, а не на оригинальный сайт в интернете. -
-P ./test— указывает каталог, в который будут сохранены все скачанные файлы.
wget копирует только статическую часть сайта (HTML, CSS, JavaScript, изображения и т.п.). Серверный код (PHP, базы данных и т.д.) в зеркало не попадает.
Улучшенный (вежливый) вариант команды
wget \ -m -p -k -E \ --no-parent \ --domains=site-domain.test \ --wait=1 --random-wait \ --limit-rate=200k \ -P ./test \ https://site-domain.test/
Что добавлено в улучшенной команде
-
-E/--adjust-extension— добавляет расширение.htmlк HTML-файлам, если сервер его не указал. -
--no-parent— не поднимается выше указанного URL, не лезет в родительские каталоги относительно стартовой страницы. -
--domains=site-domain.test— ограничивает обход только доменомsite-domain.test. Внешние домены и сторонние ресурсы игнорируются. -
--wait=1и--random-wait— добавляют паузу между запросами и случайный разброс задержки. Так вы уменьшаете нагрузку на сервер и снижаете риск быть заблокированным. -
--limit-rate=200k— ограничивает скорость скачивания (в примере до 200 КБ/с), чтобы не забивать канал и не создавать пиковую нагрузку.
Фильтрация лишних файлов
Если сайт большой, имеет смысл отфильтровать ненужные форматы файлов.
Пример: отклонить тяжёлые архивы и видео
wget \ -m -p -k -E \ --no-parent \ --domains=site-domain.test \ --wait=1 --random-wait \ --limit-rate=200k \ --reject=zip,tar,tar.gz,rar,7z,mp4,avi,iso \ -P ./test \ https://site-domain.test/
Пример: скачивать только популярные веб-форматы
wget \ -m -p -k -E \ --no-parent \ --domains=site-domain.test \ --wait=1 --random-wait \ --limit-rate=200k \ --accept=html,htm,css,js,jpg,jpeg,png,gif,webp,svg \ -P ./test \ https://site-domain.test/
Комментарии
0Нашли ошибку или хотите дополнить материал?