Использование утилиты wget: установка и основные команды
Описание утилиты
wget — это бесплатная утилита командой строки для неинтерактивной загрузки файлов из интернета. Поддерживает протоколы HTTP, HTTPS и FTP, а также получение файлов через HTTP-прокси.
wget неинтерактивен, что означает, что он может работать в фоновом режиме, пока пользователь не вошел в систему, что позволяет начать загрузку и отключиться от системы, позволив wget завершить работу. В отличие от него, большинство веб-браузеров требуют постоянного взаимодействия с пользователем, что затрудняет передачу большого объема данных.
wget может переходить по ссылкам на страницах HTML и XHTML и создавать локальные версии удаленных сайтов, полностью воссоздавая структуру каталогов исходного сайта, что иногда называют "рекурсивной загрузкой". При этом wget соблюдает стандарт исключения роботов (robots.txt). wget можно проинструктировать преобразовывать ссылки в загруженных HTML-файлах в локальные файлы для автономного просмотра.
wget разработан для обеспечения надежности при медленном или нестабильном сетевом соединении. Если загрузка не удается из-за проблем в сети, он продолжает повторять попытки, пока не будет получен весь файл. Если сервер поддерживает регеттинг, он дает команду серверу продолжить загрузку с того места, на котором она закончилась.
Установка на разные операционные системы
Windows
Утилита устанавливается в систему и работает через командную строку (cmd). Пользователям Windows рекомендуем работать в командной строке через Windows Terminal.
- Для установки утилиты рекомендуем сначала установить Chocolatey.
Chocolatey — это менеджер пакетов с интерфейсом командной строки и установщик программного обеспечения Windows на машинном уровне. Chocolately устанавливается через командную строку (cmd.exe) или через PowerShell.exe.
- Установка в cmd.exe, запись в одну строку:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
- Установка в PowerShell.exe, запись в строку:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Подробная инструкция установки менеджера пакетов Chocolately: https://docs.chocolatey.org/en-us/choco/setup
- Завершив установку Chocolately, переходим к установке GNU Wget. Для этого нужно выполнить следующую команду из командной строки или из PowerShell:
choco install wget
Подробное описание утилиты GNU Wget для Chocolately: https://community.chocolatey.org/packages/Wget.
- Далее после успешной установки GNU Wget можно переходить в Windows Terminal для работы с утилитой через командную строку.
Linux
Если ваша операционная система — Ubuntu или другой дистрибутив Linux на базе Debian, который использует APT для управления пакетами, вы можете установить wget с помощью команды:
sudo apt-get install wget
Для других операционных систем смотрите документацию вашего пакетного менеджера для получения информации, как найти бинарный пакет wget и установить его.
Также вы можете установить wget из исходного кода с официального сайта GNU: https://www.gnu.org/software/wget.
Опции и команды
Синтакс
wget [URL]... [option]..
Самый простой способ использования wget — указать ему местоположение файла для загрузки по HTTP. Например, чтобы загрузить файл с сайта http://website.com/files/file.zip, выполните следующую команду:
wget http://website.com/files/file.zip
Так wget загрузит файл в рабочий каталог.
Существует множество опций, которые позволяют использовать wget различными способами и для различных целей. Они описаны ниже.
Основные параметры запуска
- -V, --version — выводит версию wget.
- -h, --help — выводит справочное сообщение, описывающее все опции командной строки wget.
- -b, --background — переходит в фоновый режим сразу после запуска. Если через -o не указан выходной файл, вывод перенаправляется в wget-log.
- -e, --execute — выполнить команду так, как если бы она была частью файла .wgetrc. Вызванная таким образом команда выполняется после команд в .wgetrc и имеет над ними приоритет.
Опции протоколирования и входного файла
Опции | Описание |
---|---|
-o logfile, --output-file=logfile | Записывать все сообщения в logfile. Обычно сообщения выводятся в стандартную ошибку. |
-a logfile, --append-output=logfile | Добавление в logfile. Эта опция аналогична опции -o, только она добавляет сообщение в logfile вместо того, чтобы перезаписывать старый файл журнала. Если logfile не существует, создается новый файл. |
-d, --debug | Включает вывод отладки, то есть различной информации, важной для разработчиков wget, если он работает неправильно. Возможно, вы скомпилировали wget без поддержки отладки, в этом случае -d не работает. Обратите внимание, что компиляция с поддержкой отладки всегда безопасна. wget, скомпилированный с поддержкой отладки, не выводит никакой отладочной информации, если не запросить -d. |
-q, --quiet | Выключить вывод wget. |
-v, --verbose | Включить подробный вывод, со всеми доступными данными. По умолчанию вывод осуществляется в режиме verbose. |
-nv, --non-verbose | Выключить вывод данных в режиме --verbose. Выключить подробный вывод без полной тишины (для этого используйте -q), что означает, что сообщения об ошибках и основная информация все равно будут выводиться. |
-i file, --input-file=file | Чтение URL из локального или внешнего файла. Если в качестве файла указано "-", URL-адреса считываются из стандартного ввода. (Используйте "./-" для чтения из файла с буквальным именем "-"). Если используется эта функция, то в командной строке не должно быть URL-адресов. Если URL есть и в командной строке, и во входном файле, то первыми будут получены те, которые находятся в командной строке. Если параметр --force-html не указан, то файл должен состоять из серии URL, по одному в строке. Однако если вы укажете --force-html, то документ будет рассматриваться как HTML. В этом случае могут возникнуть проблемы с относительными ссылками, которые можно решить либо добавлением <base href="url"> в документы, либо указанием --base=url в командной строке. Если файл является внешним, то документ автоматически обрабатывается как HTML, если тип контента "text/html". Кроме того, местоположение файла неявно используется в качестве базового href, если оно не было указано. |
-F, --force-html | Когда входные данные считываются из файла, принудительно обработайте их как HTML-файл. Это позволит вам получать относительные ссылки из существующих HTML-файлов на локальном диске, добавляя <base href="url"> в HTML или используя опцию командной строки --base. |
-B URL, --base=URL | Решает относительные ссылки, используя URL в качестве точки отсчета, при чтении ссылок из HTML файла, указанного с помощью опции -i/--input-file (вместе с --force-html, или когда входной файл был получен удаленно с сервера, описывающего HTML). Эта опция эквивалентна наличию тега "BASE" во входном файле HTML, с URL в качестве значения атрибута "href". Например, если вы укажете http://foo/bar/a.html для URL, и wget прочитает ../baz/b.html из входного файла, он будет преобразован в http://foo/baz/b.html. |
--config=FILE | Укажите местоположение загрузочного файла, который вы хотите использовать. |