Установка и использование wget на Mac

Кратко
Wget — это удобный командный загрузчик для скачивания страниц, медиа и зеркалирования сайтов. В статье приведены несколько способов установить wget на macOS, примеры команд, советы по автоматизации и чек‑листы для разработчиков и администраторов.
Введение
Mac сочетает аккуратный графический интерфейс и Unix‑ядро. Тем не менее некоторые полезные консольные утилиты, такие как wget, могут отсутствовать «из коробки». Wget позволяет рекурсивно скачивать сайты, тянуть медиаконтент и использоваться в скриптах для резервного копирования. Ниже — подробная инструкция по установке, варианты обхода проблем и примеры практического применения.
Важно: используйте wget этично и законно. Не скачивайте контент, защищённый авторскими правами, без разрешения.
Способы получения wget
Ниже перечислены три основных подхода: быстрый бинарник, сборка из исходников и установка через менеджер пакетов.
1. Быстрое решение — готовый бинарник
Это “чит‑метод”, который может работать не на всех компьютерах и в будущем перестать быть доступным. Кому‑то удобно взять предварительно собранный бинарный файл. Один из таких билдов подготовил Quentin Stafford‑Fraser. Скачайте ZIP, распакуйте и скопируйте файл wget в /usr/local/bin (или в другое место в PATH). Следуйте инструкциям в README архива.
Если после этого wget не запускается — читайте разделы про зависимости и сборку.
2. Сборка из исходников (полный контроль)
Этот метод занимает больше времени, но даёт гибкость и сумеет работать в средах без менеджеров пакетов.
- Убедитесь, что у вас есть компилятор C/C++. На macOS это обычно Xcode и набор командной строки. Xcode можно установить из App Store или с установочного диска macOS. После установки выполните в Терминале:
xcode-select --installРазархивируйте исходники. Пакет wget обычно упакован в xz + tar. Стандартный системный распаковщик macOS не всегда поддерживает .xz, поэтому установите XZ Utils (см. ниже), либо распакуйте на другой машине и перенесите распакованные файлы.
Соберите и установите:
cd ~/Downloads
xz -d wget-1.13.tar.xz
tar -xf wget-1.13.tar
cd wget-1.13
./configure
make
sudo make installПри необходимости добавьте опции в ./configure (например для указания путей к библиотекам шифрования).
3. Установка через менеджер пакетов (рекомендуется для большинства пользователей)
Если у вас установлен Homebrew, установка wget простая и надёжная:
brew install wgetHomebrew автоматически подтянет нужные зависимости (openssl, libidn и т. п.) и упростит обновления.
Что делать, если пакет .xz не открывается — XZ Utils
Файл wget часто распространяется как .tar.xz. Если встроенный распаковщик macOS не открывает такой файл, установите XZ Utils. Проще всего это сделать через Homebrew:
brew install xzИли скачайте официальный пакет XZ Utils для macOS с соответствующих ресурсов и следуйте инструкциям по установке.
Примеры использования wget
Wget умеет очень многое. Ниже — часто используемые опции и примеры.
Основной пример для зеркалирования сайта (взято из оригинала, не применяйте к чужим сайтам без разрешения):
wget -m https://www.makeuseof.com/Полезные опции:
- -r — рекурсивная загрузка.
- -l <уровень> — глубина рекурсии.
- -p — скачать все необходимые страницы и ресурсы (CSS, изображения).
- -k — преобразовать ссылки для локального просмотра.
- -N — скачивать только новые или обновлённые файлы (timestamping).
- -w <сек> или –wait=<сек> — пауза между запросами, чтобы не перегружать сервер.
- –limit-rate=100k — ограничить скорость загрузки.
- -A <список расширений> — принимать только указанные типы файлов (например, -A jpg,png,mp3).
- -R <список> — исключить по расширениям.
- -U “User-Agent” — задать строку User‑Agent.
Пример: скачать только изображения с сайта, не грузя сервер:
wget -r -l 2 -A jpg,png -w 1 --limit-rate=200k https://example.com/photos/Пример: однострочный бэкап сайта с преобразованием ссылок для офлайн‑чтения и пропуском внешних доменов:
wget -r -l 0 -p -k -np https://example.com/Здесь -np означает “no parent” — не подниматься выше указанной директории.
Автоматизация и скрипты
Wget отлично подходит для автоматических резервных копий. Пример простого скрипта бэкапа:
#!/bin/bash
TARGET_DIR="/backups/site-$(date +%F)"
mkdir -p "$TARGET_DIR"
wget -m -p -k -np -P "$TARGET_DIR" https://example.com/
# Удаляем бэкапы старше 30 дней
find /backups -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;Этот скрипт можно запускать по cron или через launchd. На macOS предпочтительнее использовать launchd для привязки к времени и повышенной надёжности.
Чек‑листы по ролям
Разработчик
- Проверьте, доступен ли wget в PATH:
which wget. - Если нет — установите через Homebrew или соберите из исходников.
- Тестируйте команды на копии сайта или на тестовой среде.
- Добавьте логирование и ограничение скорости в скрипты.
Системный администратор
- Настройте регулярные бэкапы через launchd/cron.
- Контролируйте объём диска и ротацию бэкапов.
- Убедитесь, что бэкапы безопасно хранятся и шифруются при необходимости.
Контент‑менеджер / пользователь
- Запрашивайте разрешение владельца сайта на массовую загрузку.
- Используйте опции –wait и –limit-rate, чтобы не навредить серверу.
Отладка и распространённые ошибки
Проблема: ./configure не видит ssl/crypto headers. Решение: установите OpenSSL (через Homebrew:
brew install openssl) и укажите configure путь к библиотеке при необходимости.Проблема: wget не находится после установки. Решение: убедитесь, что /usr/local/bin в PATH или используйте абсолютный путь.
Проблема: сайт отдает разные страницы для бота. Решение: задайте User‑Agent (
-U) и, при необходимости, используйте куки или авторизацию.
Альтернативы и когда wget не подходит
- curl — мощный инструмент для HTTP-запросов. Лучше подходит для единичных запросов и API‑взаимодействий.
- Homebrew‑wget — установка через Homebrew решает многие проблемы с зависимостями.
- aria2 — умеет многопоточные загрузки и лучше подходит для больших наборов отдельных файлов.
Когда wget не подходит:
- Если нужно параллельно скачивать тысячи больших файлов, aria2 может быть эффективнее.
- Для сложной логики аутентификации и динамического контента возможно требуется скрипт на Python (requests, scrapy) или headless‑браузер.
Мини‑методология: создание регулярного офлайн‑резерва сайта
- Оцените объём данных и доступный диск.
- Настройте команду wget с -m, -p, -k и ограничениями по скорости.
- Добавьте логирование вывода в файл и проверку кода возврата.
- Поместите скрипт в launchd/cron.
- Настройте ротацию и мониторинг размера каталога бэкапов.
Безопасность, приватность и правовые аспекты
- Соблюдайте авторские права и условия использования сайта.
- Не используйте wget для доступа к закрытым ресурсам без соответствующих прав.
- При хранении бэкапов с личными данными учитывайте требования по защите (шифрование хранилища, ограниченный доступ).
Примеры дополнительных сценариев использования
- Массовое скачивание изображений из публичных галерей.
- Быстрое создание офлайн‑копии документации проекта.
- Автоматизированный сбор угасающих ссылок и ресурсов для архивации.

Частые команды‑шпаргалка
- Простое зеркалирование:
wget -m URL - Ограничение скорости:
--limit-rate=200k - Загружать только определённые расширения:
-A jpg,png,gif - Пауза между запросами:
-w 1 - Пропускать родительские директории:
-np

Критерии приёмки
- wget успешно устанавливается и запускается без ошибок.
- При зеркалировании сайт просматривается офлайн с корректными локальными ссылками.
- Скрипты бэкапа выполняются по расписанию и сохраняют резервные копии в заданную директорию.
- Ротация старых бэкапов работает, чтобы избежать переполнения диска.
Вывод
Wget — компактный и надёжный инструмент для скачивания контента и создания офлайн‑копий сайтов. На macOS его можно получить быстрым бинарником, собрать из исходников или установить через Homebrew. Для автоматизации используйте скрипты и системные планировщики, а также соблюдайте правила этичного использования. Если вам нужна помощь с конкретной командой или сценарием, опишите задачу — я помогу подобрать параметры и написать скрипт.
Авторские права на изображения: значок загрузки и фотографии — через Shutterstock (указано в исходном материале).
Похожие материалы
Gmail и настольные клиенты: выбор и настройка
SketchUp бесплатно: как начать 3D‑моделирование
Как создать аккаунт PlayStation Network (PSN)
Почему iPhone и iPad нагреваются и как это исправить
Как искать жильё на Airbnb для отпуска