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

Wget: установка и использование в Windows и macOS

9 min read Инструменты Обновлено 05 Oct 2025
Wget: установка и использование в Windows и macOS
Wget: установка и использование в Windows и macOS

Изображение рабочего стола Windows 10 с открытой командной строкой

Ошибка

Коротко: что такое wget

Wget — это консольная утилита для загрузки контента по сетевым протоколам HTTP, HTTPS и FTP. Простая строка: wget скачивает файлы без графического интерфейса — удобно для скриптов и автоматизации. (Определение: wget — командная программа для рекурсивной и одиночной загрузки файлов с веба.)

Важно: wget сам по себе уважает robots.txt, но поведение можно конфигурировать; при зеркалировании сайтов действуйте этично, снижайте нагрузку на сервер и соблюдайте правила сайта.

Оглавление

  • Что умеет wget
  • Установка и проверка (Windows, macOS, альтернативы)
  • Синтаксис и полезные примеры команд
  • Зеркальное копирование сайта: безопасный подход
  • Ограничение скорости и polite crawling
  • Отладка и план действий при проблемах
  • Рекомендации по безопасности
  • Роль‑ориентированные чеклисты
  • Критерии приёмки и тесты
  • FAQ
  • Краткое резюме

Что умеет wget и когда он полезен

  • Скачивать одиночные файлы и списки URL.
  • Рекурсивно зеркалировать сайты с подтягиванием ресурсов (CSS, JS, картинки).
  • Возобновлять прерванные загрузки (-c).
  • Менять заголовок User-Agent для симуляции запросов от браузеров или ботов.
  • Ограничивать скорость и паузы между запросами.
  • Работать в скриптах без GUI.

Когда использовать: автоматизация резервных копий фронтенда, скачивание sitemap/robots.txt, массовое скачивание файлов с контролем скорости, тестирование локального рендеринга страниц.

Установка wget

В этом разделе — практические инструкции и варианты для разных сценариев.

Проверка установлен ли wget

Откройте терминал и выполните:

wget -V

Если wget установлен, команда выведет версию и параметры сборки. Если терминал отвечает “command not found” или аналогично — утилита не найдена в PATH.

Установка на Windows

Вариант A — пакетный менеджер Chocolatey (рекомендуется для опытных пользователей):

  1. Установите Chocolatey по официальной инструкции (администраторская PowerShell).
  2. Установите wget:
choco install wget -y

Вариант B — пакетный менеджер Scoop:

iwr -useb get.scoop.sh | iex
scoop install wget

Вариант C — вручную (если вы скачали бинарный exe):

  1. Скачайте официальный бинарник для Windows (обычно в виде wget.exe).
  2. Создайте папку, например C:\tools\wget, и положите туда wget.exe.
  3. Добавьте папку в системную переменную PATH: Панель управления → Система → Дополнительные параметры → Переменные среды → Path → Изменить → Добавить C:\tools\wget.
  4. Откройте новый терминал и выполните wget -V для проверки.

Примечание: в старых инструкциях предлагают копировать в C:\Windows\System32; это работает, но помните про права и управление версиями — предпочтительнее держать исполняемые файлы в отдельной папке и управлять PATH.

Установка на macOS

Самый простой способ — Homebrew. Если Homebrew не установлен, установите его по официальной инструкции.

Установка wget через Homebrew:

brew update
brew install wget

Проверка:

wget -V

Альтернатива для macOS — MacPorts или установка из исходников, если нужны специфические опции.

Linux

На большинстве дистрибутивов wget уже предустановлен или доступен через пакетный менеджер:

  • Debian/Ubuntu: sudo apt install wget
  • CentOS/RHEL: sudo yum install wget
  • Fedora: sudo dnf install wget

(Эти команды — ориентир; используйте менеджер пакетов вашего дистрибутива.)

Синтаксис wget и базовые команды

Базовый синтаксис:

wget [ОПЦИИ] URL

Где ОПЦИИ — ключи управления (короткие и длинные формы), а URL — адрес ресурса.

Примеры и объяснения.

Скачивание одного файла

wget https://example.com/robots.txt

Скачивание в конкретную папку

wget -P /путь/до/папки https://example.com/sitemap.xml

На Windows путь можно указать как C:\path\to\dir.

Переименование скачанного файла

wget -O moia-stranica.html https://example.com/file.html

-O перенаправляет вывод в указанный файл.

Определение User-Agent

Иногда нужно задать заголовок User-Agent:

wget --user-agent="Mozilla/5.0 (compatible; MyTool/1.0)" https://example.com/file.html

Имитация Googlebot

Будьте аккуратны: маскировка под бота может нарушать правила сайта. Технически это делается так:

wget --user-agent="Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/path

Загружать robots.txt только при изменении

Первое скачивание с подробной информацией о заголовках:

wget -S https://example.com/robots.txt

Затем получать обновления только если изменилось содержимое:

wget -N https://example.com/robots.txt

-N включает проверку временных меток и заголовков, чтобы избежать повторных загрузок без изменений.

Конвертировать ссылки для локального просмотра

Чтобы адаптировать ссылки для запуска страницы на локальном сервере:

wget --convert-links https://example.com/path

Скопировать одну страницу для локального просмотра

wget -E -H -k -K -p --convert-links https://example.com/path

Обозначения:

  • -E: корректировка расширений (сохранение .html)
  • -H: разрешить загружать ресурсы с других хостов
  • -k: конвертировать ссылки для локального просмотра
  • -K: резервная копия оригиналов
  • -p: загрузить все необходимые ресурсы страницы

Загрузка списка URL из файла

Создайте файл urls.txt с набором адресов (по одному URL на строку):

https://example.com/1
https://example.com/2
https://example.com/3

Запуск:

wget -i urls.txt

Ограничение скорости и паузы между запросами

Полезно при массовых загрузках, чтобы не перегружать сервер:

--wait=1          # пауза 1 секунда между запросами
--random-wait     # случайная пауза, чтобы имитировать человеческую активность
--limit-rate=10K  # ограничение скорости до 10 килобайт/с

Пример использования:

wget --wait=1 --limit-rate=10K -i urls.txt

Рекурсивное зеркалирование сайта (с осторожностью)

Для полного зеркалирования с контролем доменов и ограничением:

wget --recursive --page-requisites --adjust-extension --span-hosts --wait=1 --limit-rate=10K --convert-links --restrict-file-names=windows --no-clobber --domains=example.com --no-parent https://example.com

Коротко о ключах:

  • –recursive: рекурсивный режим (по умолчанию глубина 5)
  • –page-requisites: загрузить все ресурсы страницы
  • –adjust-extension: корректировать расширения (.html)
  • –span-hosts: разрешает переход на другие хосты для получения ресурсов
  • –no-clobber: не перезаписывать уже существующие файлы
  • –domains: ограничить скачивание указанным доменом
  • –no-parent: не подниматься выше указанного каталога

Этичный совет: перед зеркалированием проверьте robots.txt и свяжитесь с владельцем сайта при большой нагрузке.

Отладка: “wget: command not found” и другие ошибки

Пошаговый план действий, если wget не найден или работает неправильно:

  1. Проверьте установку: выполните wget -V.
  2. Если “command not found”: проверьте PATH. На Windows откройте системные переменные и убедитесь, что папка с wget.exe присутствует.
  3. Закройте и откройте терминал после изменения PATH (новые значения вступают в силу в новой сессии).
  4. Если ошибка связана с SSL: проверьте дату и время системы, если необходимо временно используйте –no-check-certificate (опасно) и затем исправьте корни доверия.
  5. При прерываниях загрузки используйте -c для продолжения:
wget -c https://example.com/bigfile.zip
  1. Логи и подробный вывод: добавьте -d или –debug для глубокой отладки, –report-speed=bits для измерения.

План восстановления при неудачном зеркалировании (runbook)

  1. Остановите текущий процесс wget (Ctrl+C).
  2. Оцените загруженные файлы и место на диске.
  3. Проверьте файл robots.txt и исключите запрещённые пути.
  4. Настройте –wait и –limit-rate для снижения нагрузки.
  5. Запустите загрузку заново с –no-clobber или с указанием –timestamping (-N), чтобы не перезагружать неизменённые файлы.
  6. При необходимости откатите изменения (удалите дефектный каталог и начните зеркалирование с контролем глубины).

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

  • Не используйте –no-check-certificate для обхода ошибок TLS в продуктиве: это ослабляет безопасность соединения.
  • Не храните пароли в явном виде в скриптах. Для FTP/HTTP с авторизацией используйте файл .netrc с корректными правами доступа.
  • По возможности используйте HTTPS и проверяйте сертификаты.
  • Не подменяйте User-Agent, если это нарушает правила сервиса.
  • Соблюдайте местные законы и политику конфиденциальности при скачивании персональных данных.

Роль‑ориентированные чеклисты

Разделённые на роли, чтобы быстро понять, что сделать.

Чеклист для разработчика:

  • Проверить наличие wget: wget -V
  • Автоматизировать скачивание в скрипте с -O или -P
  • Использовать -c для больших файлов
  • Добавить логирование и проверки контрольных сумм после скачивания

Чеклист для системного администратора:

  • Установить wget через пакетный менеджер и следить за обновлениями
  • Ограничить параллельные процессы, чтобы не загружать сеть
  • Настроить доступные места хранения и ротацию логов
  • Проверять SSL и политики безопасности

Чеклист для SEO-специалиста / скрепера:

  • Уважать robots.txt и правила сайта
  • Ограничить скорость и добавить –wait/–random-wait
  • Логировать User-Agent и цель запросов
  • Использовать –mirror или набор ключей для корректного локального просмотра

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

Примерный набор приёмочных тестов перед тем, как считать установку/конфигурацию приемлемой:

  1. Установка: wget -V возвращает версию (PASS/FAIL).
  2. Одиночная загрузка: wget https://example.com/robots.txt создает файл robots.txt (PASS/FAIL).
  3. Продолжение загрузки: прервать загрузку большого файла, затем запустить wget -c — загрузка корректно продолжается.
  4. Скачивание списка: при наличии urls.txt выполнить wget -i urls.txt — все URL успешно скачаны или лог содержит понятные ошибки.
  5. SSL: для HTTPS URL wget завершает соединение без –no-check-certificate (если сертификат валиден).
  6. Mirror: выполнить зеркалирование ограниченного участка сайта с –no-parent — не загружаются файлы из родительских каталогов.

Совместимость и миграция

  • Windows: wget доступен как самостоятельный exe или через менеджеры пакетов (Chocolatey, Scoop).
  • macOS: Homebrew — самый удобный путь.
  • Linux: стандартные репозитории большинства дистрибутивов содержат wget.

При миграции между серверами перенесите конфигурационные скрипты и проверьте относительные пути и права доступа.

Быстрый справочник по опциям (cheat sheet)

  • -V, –version — версия
  • -O FILE — записать в FILE
  • -P DIR — сохранить в DIR
  • -i FILE — список URL
  • -c — продолжить загрузку
  • -r — рекурсивно
  • –limit-rate=RATE — ограничение скорости
  • –wait=SECONDS — пауза между запросами
  • –convert-links — адаптировать ссылки для локального просмотра
  • –no-check-certificate — отключить проверку SSL (не рекомендовано)

1‑строчный глоссарий

  • wget — утилита командной строки для загрузки файлов по HTTP/HTTPS/FTP.
  • HTTP/HTTPS — протоколы передачи гипертекста (HTTPS — с шифрованием).
  • FTP — старый протокол передачи файлов.
  • User-Agent — заголовок, идентифицирующий клиент (браузер/инструмент).
  • robots.txt — файл с правилами доступа для роботов на веб‑сервере.

Часто задаваемые вопросы

Почему появляется “wget: command not found” в Windows?

Чаще всего wget не установлен или папка с исполняемым файлом не добавлена в переменную окружения PATH. Проверьте установку (wget -V) и PATH. При ручной установке положите wget.exe в папку и добавьте её в PATH.

Что такое curl и чем он отличается от wget?

curl — ещё одна командная утилита для передачи данных, более гибкая для сложных HTTP-запросов и форм-данных; wget удобнее для простых загрузок и рекурсивного зеркалирования.

Можно ли использовать wget для автоматического сканирования большого сайта?

Можно, но соблюдайте правила сайта и robots.txt, лимитируйте скорость (–limit-rate) и интервалы (–wait), чтобы не создавать чрезмерную нагрузку.

Полезные рекомендации и лучшие практики

  • Всегда проверяйте robots.txt прежде чем выполнять массовую загрузку.
  • Используйте пакетные менеджеры для установки и обновления wget.
  • Не храните секреты в командной строке; применяйте файлы с ограниченными правами (например, .netrc).
  • Для сложных сценариев парсинга рассмотрите специализированные инструменты (scrapy, wget + grep + sed для простых случаев).

Резюме

Wget — надёжный инструмент для автоматизированных загрузок и зеркалирования сайтов. Простая установка в Windows и macOS, богатый набор ключей и режимов позволяют гибко настраивать поведение. Главные правила — безопасность (не отключать проверку сертификатов), уважение к ресурсам сайтов и логирование операций. Если появляется “wget: command not found”, обычно достаточно установить утилиту и добавить её в PATH.

Важно: используйте приведённые команды ответственно и проверяйте политику владельцев сайтов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Сменить пароль на Chromebook — пошаговое руководство
Chromebook

Сменить пароль на Chromebook — пошаговое руководство

Как заблокировать контакт на iPhone и iPad
Руководство

Как заблокировать контакт на iPhone и iPad

Как не стыдиться своего iPhone
iPhone советы

Как не стыдиться своего iPhone

Ошибка Windows 0x80070422 — как исправить
Windows

Ошибка Windows 0x80070422 — как исправить

Как зарядить телефон быстрее от ноутбука
Гаджеты

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

Аудиоописание на Hulu — включение и настройка
Развлечения

Аудиоописание на Hulu — включение и настройка