Перейти к основному содержимому

Использование утилиты wget: установка и основные команды

Описание утилиты

wget — это бесплатная утилита командой строки для неинтерактивной загрузки файлов из интернета. Поддерживает протоколы HTTP, HTTPS и FTP, а также получение файлов через HTTP-прокси.

wget неинтерактивен, что означает, что он может работать в фоновом режиме, пока пользователь не вошел в систему, что позволяет начать загрузку и отключиться от системы, позволив wget завершить работу. В отличие от него, большинство веб-браузеров требуют постоянного взаимодействия с пользователем, что затрудняет передачу большого объема данных.

wget может переходить по ссылкам на страницах HTML и XHTML и создавать локальные версии удаленных сайтов, полностью воссоздавая структуру каталогов исходного сайта, что иногда называют "рекурсивной загрузкой". При этом wget соблюдает стандарт исключения роботов (robots.txt). wget можно проинструктировать преобразовывать ссылки в загруженных HTML-файлах в локальные файлы для автономного просмотра.

wget разработан для обеспечения надежности при медленном или нестабильном сетевом соединении. Если загрузка не удается из-за проблем в сети, он продолжает повторять попытки, пока не будет получен весь файл. Если сервер поддерживает регеттинг, он дает команду серверу продолжить загрузку с того места, на котором она закончилась.

Установка на разные операционные системы

Windows

Утилита устанавливается в систему и работает через командную строку (cmd). Пользователям Windows рекомендуем работать в командной строке через Windows Terminal.

  1. Для установки утилиты рекомендуем сначала установить 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

  1. Завершив установку Chocolately, переходим к установке GNU Wget. Для этого нужно выполнить следующую команду из командной строки или из PowerShell:

choco install wget

Подробное описание утилиты GNU Wget для Chocolately: https://community.chocolatey.org/packages/Wget.

  1. Далее после успешной установки 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: Options and commands

Синтакс

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Укажите местоположение загрузочного файла, который вы хотите использовать.

Опции загрузки

Опции протоколирования и входного файла

Параметры каталога

Параметры HTTP

Параметры HTTPS (SSL/TLS)

Параметры FTP

Опции рекурсивного получения (Recursive retrieval options)

Рекурсивные опции принятия/отклонения (Recursive accept/reject)

Примеры загрузки