Гид по технологиям

Как скопировать целый сайт локально с помощью wget

8 min read Инструменты Обновлено 14 Dec 2025
Скачать сайт целиком с помощью wget
Скачать сайт целиком с помощью wget

Монитор с открытым браузером и сообщением о том, что компьютер не в сети

Быстрые ссылки

  • Before You Start

  • How to Copy a Whole Website Locally Using Wget

  • What About Downloading Just One Page?

  • Downloading Websites for Offline Access

  • How Do You Access the Site You Downloaded?

  • Other Tools for Downloading Web Content for Offline use

Краткое резюме

  • wget позволяет скачивать сайты целиком для офлайн-доступа.
  • wget доступен в Linux, macOS и Windows (через WSL или сборки).
  • Для некоторых сайтов лучше подходят другие инструменты: HTTrack, SiteSucker, headless-браузеры.

Before You Start

Прежде чем начать, проверьте место на диске и питание устройства: зеркалирование сайта может занять много места и времени. Если вы используете ноутбук — подключите его к сети.

Если вы на Windows и хотите использовать классический пакет wget для Linux, установите WSL (Windows Subsystem for Linux) и нужный дистрибутив или используйте сборки wget для Windows.

Имейте в виду, что многие современные сайты генерируются динамически (серверные шаблоны, API, JavaScript). wget создаёт снимок текущего состояния; чтобы получить актуальную копию, нужно перезапустить скачивание позже.

Важно: соблюдайте законы об авторском праве и правила сайта (robots.txt, условия использования). Если цель — архивирование личных данных, учитывайте требования GDPR и локальные правила приватности.

How to Copy a Whole Website Locally Using Wget

Wget — инструмент командной строки для скачивания данных из сети. На Ubuntu и Fedora он обычно установлен по умолчанию; в Arch-подобных дистрибутивах и на macOS может потребоваться установка через пакетный менеджер (pacman, Homebrew, MacPorts) или сборку из исходников.

Откройте терминал (или WSL-консоль на Windows) и убедитесь, что wget доступен:

wget --help

Если команда выводит справку — можно продолжать.

Простейшая команда для копирования сайта целиком:

wget -mpEk https://example.com

Пояснение флагов:

  • -m — включается режим зеркалирования (mirror): сочетает несколько опций, включая рекурсивное скачивание и проверку временных меток.
  • -p — скачивает все зависимости страницы: изображения, стили, скрипты, шрифты и т. п.
  • -E — корректирует расширения файлов так, чтобы локальные HTML-файлы имели расширение .html.
  • -k — конвертирует ссылки в сохранённых файлах на локальные пути, чтобы навигация работала офлайн.

Пример вывода, который вы увидите при запуске:

$ wget -mpEk https://example.com  
--2024-04-05 10:00:00-- https://example.com/  
Resolving example.com (example.com)... 93.184.216.34  
Connecting to example.com (example.com)|93.184.216.34|:443... connected.  
HTTP request sent, awaiting response... 200 OK  
Length: unspecified [text/html]  
Saving to: ‘example.com/index.html’  
example.com/index.html [ <=> ] 1.07K --.-KB/s in 0s  
2024-04-05 10:00:01 (68.7 MB/s) - ‘example.com/index.html’ saved [1096]

Примечание: рекурсивное скачивание сохраняет только страницы в пределах указанного домена по умолчанию; внешние ссылки на другие сайты останутся ссылками.

Частые дополнительные опции

  • –limit-rate=200k — ограничивает скорость скачивания (например, 200 KB/s).
  • –wait=1 — добавляет задержку между запросами (в секундах) для «вежливого» сканирования.
  • -r или –recursive — рекурсивно спускаться по ссылкам (аналогично зеркалированию, но гибче).
  • –no-parent — не подниматься вверх по структуре каталогов (важно для ограничения области скачивания).
  • -nd — не создавать структуру каталогов, сохранять все файлы в одну папку.
  • -P /путь/к/папке — указать директорию для сохранения копии.
  • –user-agent=’MyBot/1.0’ — задать User-Agent; некоторые сайты возвращают разный контент в зависимости от него.
  • –mirror — эквивалент -r -N -l inf –no-remove-listing (альтернативный способ включить mirror-настройки).

Пример команды с ограничением области и скоростью:

wget -m -p -E -k --wait=1 --limit-rate=200k --no-parent -P ~/sites/example https://example.com/docs/

Это создаст локальную копию каталога /docs/ сайта example.com, сохранённую в ~/sites/example.

Что происходит при выполнении команд

Модель работы wget при зеркалировании — это обход ссылок (crawl) и сохранение каждого ресурса в файловой структуре, отражающей URL. Пара ключевых отличий:

  • snapshot (снимок): wget сохраняет текущую версию каждой страницы и зависимостей.
  • sync (синхронизация): повторный запуск wget с флагами проверки временных меток обновит только изменённые файлы.

What About Downloading Just One Page?

Браузер предоставляет простой способ: Файл → Сохранить страницу как… (в Firefox «Сохранить страницу как…»). Это чаще всего удобнее для одного ресурса.

Для wget используйте опцию без рекурсии:

wget -pk https://example.com/page.html

Опции -p и -k сохранят необходимые ресурсы и приведут ссылки к локальным путям, но не будут переходить по ссылкам на другие страницы.

Downloading Websites for Offline Access — сценарии использования

Зеркалирование сайтов пригодится в следующих ситуациях:

  • Резервное копирование собственного блога перед сменой хостинга.
  • Архивация материалов для семейных или научных проектов.
  • Подготовка офлайн-копий для удалённых путешествий или полётов.
  • Анализ структуры сайта и поиск контента без постоянного подключения.

How Do You Access the Site You Downloaded?

Скачанные файлы сохраняются в текущую рабочую директорию (или в ту, что вы задали через -P). Если вы работали в WSL, путь будет внутри виртуальной файловой системы; для доступа из Windows используйте путь вида:

\wsl.localhost\Ubuntu-22.04\home\<имя_пользователя>…

Откройте index.html в любом браузере: большинство браузеров корректно отображают локальные HTML-файлы и поддерживают внутреннюю навигацию, если ссылки были конвертированы.

Other Tools for Downloading Web Content for Offline use

Если wget не справляется с задачей или вы предпочитаете GUI:

  • cURL — командная утилита, более низкоуровневая, позволяет скриптовать скачивание.
  • HTTrack — графический интерфейс и мощные фильтры для Windows/Linux.
  • Cyotek WebCopy — GUI-инструмент для Windows с правилами и фильтрами.
  • SiteSucker — приложение для macOS с простым интерфейсом.
  • WebScrapBook — расширение для Firefox/Chrome, умеет аннотировать и собирать страницы.
  • Scrapy / BeautifulSoup — библиотеки Python для разработчиков, дают полный контроль, подходят для кастомных парсеров.
  • Headless-браузеры (Puppeteer, Playwright) — рендерят JavaScript-генерируемые сайты, позволяя сохранять итоговый DOM и ресурсы.
  • Offline Explorer — коммерческий инструмент с впечатляющими возможностями, но платный.

Когда wget не подходит

  • Сайты с интенсивной клиентской логикой (SPA, heavy JS): wget не выполняет JavaScript и не рендерит динамический HTML, поэтому часть контента не сохранится.
  • Сайты за авторизацией: wget поддерживает cookies и аутентификацию, но сложные механизмы (OAuth, одноразовые токены) потребуют дополнительных шагов.
  • Контент, загружаемый через XHR/Fetch: если данные подгружаются отдельными API-запросами, wget может пропустить их, если они не связаны явными ссылками.
  • Ограничения по robots.txt и правила хостинга: сайт может запретить автоматические обходы или ограничить скорость.

В таких случаях используйте headless-браузер или специализированный парсер.

Альтернативные подходы и когда их выбирать

  • HTTrack / Cyotek WebCopy — если вы предпочитаете GUI и хотите простые правила исключения/включения.
  • Puppeteer / Playwright — если нужно выполнить JavaScript, получить итоговый рендер или взаимодействовать со страницей (залогиниться, заполнить формы).
  • Scrapy + Splash — если нужно масштабное извлечение структурированных данных с возможностью рендеринга JavaScript.
  • Архивы на уровне хоста — попросите администратора сайта предоставить дамп или экспорт, если у вас есть к нему доступ.

Мини‑методология: стандартная процедура зеркалирования сайта (SOP)

  1. Подготовка
    • Оцените объём: пройдитесь по нескольким разделам сайта, прикиньте примерное число страниц.
    • Проверьте свободное место на диске.
    • Изучите robots.txt и правила сайта; при необходимости запросите разрешение у владельца.
  2. Тестовый запуск
    • Выполните пробный запуск с –wait=2 и –limit-rate, ограничив глубину (-l 2) и область (–no-parent).
    • Проанализируйте структуру сохранённых файлов.
  3. Полный запуск
    • Уберите искусственные ограничения или уменьшите их в зависимости от поведения сервера.
    • Используйте лог-файл: –output-file=wget.log.
  4. Валидация
    • Откройте локальную стартовую страницу и проверьте ссылки.
    • Сравните ключевые разделы с оригиналом.
  5. Поддержка
    • Если нужно регулярно обновлять сайт, запускайте cron/планировщик с опцией проверки временных меток.

Примеры команд и шаблоны

Сохранить сайт в указанную папку, ограничить скорость и добавить задержку:

wget -m -p -E -k --wait=1 --limit-rate=250k -P /srv/offline/example https://example.com

Скачать только раздел /blog/ и не подниматься выше:

wget -r -l inf -p -E -k --no-parent -P ~/sites/example https://example.com/blog/

Скачать сайт с логом и с пользовательским агентом:

wget -m -p -E -k --output-file=wget.log --user-agent='Mozilla/5.0 (compatible; MyMirror/1.0)' https://example.com

Критерии приёмки

  • Главная страница открывается локально и не содержит внешних битых ссылок внутри домена.
  • Основной контент (статьи, изображения, CSS) доступен без подключения к интернету.
  • Логи не содержат критических ошибок 4xx/5xx для ключевых страниц.

Ролевые чеклисты

Для разработчика:

  • Проверить robots.txt и sitemap.xml.
  • Запустить wget в тестовом режиме: -l 1, –no-parent.
  • Проверить кеширование и относительные ссылки.

Для архивиста/исследователя:

  • Зафиксировать дату и время запуска скачивания.
  • Сохранить метаданные сайта (автор, дата изменения, лицензии).
  • Использовать –mirror и хранить логи.

Для обычного пользователя:

  • Использовать GUI-инструмент если не знаком с терминалом.
  • Сохранить только нужные разделы, избегая медиафайлов большого размера.

Тестовые случаи для проверки результата

  • Открыть index.html локально и перейти по 10–20 случайным ссылкам — все они должны вести на локальные файлы внутри зеркала.
  • Проверить, что изображения и CSS загружены и корректно отображают страницу.
  • Попытаться открыть раздел, не включённый в зеркало — ссылка должна вести на внешний ресурс (и это ожидаемо).

Совместимость, установка и миграция

  • Ubuntu/Fedora: wget обычно установлен по умолчанию.
  • Arch Linux: установить через pacman: pacman -S wget.
  • macOS: установить через Homebrew: brew install wget или MacPorts.
  • Windows: использовать WSL или скачать сборку wget для Windows; альтернативно — пользоваться PowerShell-обёртками.

При работе из WSL помните о путях: файлы внутри WSL доступны через \wsl.localhost\\home…

Безопасность и приватность

  • Соблюдайте авторские права: скачивание и распространение контента без разрешения может быть незаконным.
  • Персональные данные: при сборе страниц с личной информацией убедитесь в соблюдении GDPR/локальных законов и удаляйте или защищайте чувствительные данные.
  • Аутентификация: храните cookies и учётные данные в безопасном месте; избегайте публикации логов с токенами.

Факто‑бокс: ключевые моменты

  • wget — CLI-инструмент для скачивания, хорош для статических сайтов.
  • Ограничьте скорость и добавьте задержки, чтобы не перегружать сервер.
  • Для динамических сайтов используйте headless-браузеры или специализированные парсеры.
  • Пробный запуск с ограниченной глубиной помогает оценить объём скачиваемых данных.

Заключение

wget остаётся простым и надёжным способом сохранить копию сайта локально — особенно для статических ресурсов и для тех, кто комфортно работает в терминале. Для сложных динамических сайтов выбирайте headless-решения или инструменты с рендерингом JavaScript. Перед массовым скачиванием всегда проверьте правила сайта и юридические ограничения.

Important: если вы планируете регулярное зеркалирование, автоматизируйте процесс с проверкой временных меток и ротацией логов.

Короткая проверка перед началом:

  • Достаточно ли места на диске?
  • Имеете ли вы разрешение на скачивание содержимого?
  • Понимаете ли вы, какие части сайта хотите сохранить?
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Сброс сетевых настроек Windows 10
Windows

Сброс сетевых настроек Windows 10

Перейти на Chrome OS Canary и вернуться на Stable
Chrome OS

Перейти на Chrome OS Canary и вернуться на Stable

Dynamic Lock в Windows 11 — автоматическая блокировка
Безопасность

Dynamic Lock в Windows 11 — автоматическая блокировка

Сколько вы играете на PS5 — как посмотреть время
Игры

Сколько вы играете на PS5 — как посмотреть время

Как удалять сообщения на iPhone быстро
iPhone

Как удалять сообщения на iPhone быстро

Как отключить Amazon Sidewalk и защитить приватность
Конфиденциальность

Как отключить Amazon Sidewalk и защитить приватность