Wget

Материал из Википедии — свободной энциклопедии
GNU Wget
Логотип программы GNU Wget
Скриншот программы GNU Wget
Тип менеджер загрузок
Автор Hrvoje Nikšić[1]
Разработчики Mauro Tortonesi, Giuseppe Scrivano и др.
Написана на Си[3]
Интерфейс командная строка
Операционные системы
UNIX-подобные, Windows
Языки интерфейса русский и ещё 38 языков
Первый выпуск январь 1996
Последняя версия
Репозиторий git.savannah.gnu.org/cgi…
git.savannah.gnu.org/git…
Состояние активное
Лицензия
GPL 3.0+[4][5]
Сайт gnu.org/software/wget/
Логотип Викисклада Медиафайлы на Викискладе

Wget

консольная программа для загрузки файлов по сети. Поддерживает протоколы HTTP, FTP и HTTPS, а также поддерживает работу через HTTP прокси-сервер. Программа включена почти во все дистрибутивы GNU/Linux
.

Wget является неинтерактивной программой. Это означает, что после её запуска пользователь может повлиять на её работу только с помощью средств управления процессами операционной системы. Как правило, для этого используются сочетания клавиш Ctrl+C при необходимости прерывания работы программы и Ctrl+Z для помещения текущего задания в фон. Современные

скриптов
, что используется при автоматизации загрузки файлов (регулярные обновления, мониторинг доступности сервера и т. д.).

Wget позволяет загружать любые файлы во всемирной паутине (в том числе и (X)HTML-страницы) по протоколам http и https, а также файлы и списки каталогов по протоколу ftp.

Файлы можно скачивать рекурсивно по ссылкам в HTML-страницах, как с одного сайта с определённой глубиной следования по ссылкам, так и с нескольких. Помимо этого, при загрузке по ftp файлы можно скачивать «по маске» имени (то есть можно задавать с помощью «*» группу файлов).

Wget поддерживает докачку файла в случае обрыва соединения.

Ведётся разработка продолжения Wget — Wget2[7].

Примеры

Загрузка всех URL, указанных в локальном или внешнем ФАЙЛЕ:

wget -i ФАЙЛ

Скачивание файлов в указанный каталог (-P)[8]:

wget -P /path/for/save ftp://ftp.example.org/some_file.iso

Использование имени пользователя и пароля на FTP/HTTP (вариант 1):

wget ftp://login:[email protected]/some_file.iso

Использование имени пользователя и пароля на FTP/HTTP (вариант 2):

wget --user=login --password=password ftp://ftp.example.org/some_file.iso

Скачивание в фоновом режиме (-b):

wget -b ftp://ftp.example.org/some_file.iso

Продолжить (-c continue) загрузку ранее не полностью загруженного файла:

wget -c http://example.org/file.iso

Скачивание без проверки сертификата (--no-check-certificate):

wget --no-check-certificate http://example.org/file.iso

Скачать содержимое каталога http://example.org/~user/my-archive/ (недоступная ссылка) и всех его подкаталогов, при этом не поднимаясь по иерархии каталогов выше:

wget -r --no-parent http://example.org/~user/my-archive/

Также поддерживается идентификация на сервере:

wget --save-cookies cookies.txt \
--post-data 'user=foo&password=bar' \
http://example.org/auth.php

Скачать весь сайт целиком (глубина рекурсии — 10):

wget -r -l 10 -k -o log-file.txt -p http://example.org/

-r, --recursive включение рекурсивной загрузки
-l, --level=ЧИСЛО глубина рекурсии (inf и 0 - бесконечность)
-k, --convert-links делать ссылки локальными в загруженном HTML или CSS
-o, --output-file=ФАЙЛ записывать сообщения (логи) в ФАЙЛ
-p, --page-requisites загрузить все изображения и проч., необходимые для отображения HTML-страницы
-m, --mirror короткий параметр, эквивалентный -N -r -l inf --no-remove-listing.

Вывести содержание ответа в консоль:

wget http://example.org --quiet -O -

Возвращаемый статус

До версии 1.12, возвращает 0 при успешном выполнении и 1 в случае ошибки. Начиная с версии 1.12[9], в случае ошибки возвращает от 1 до 8, в зависимости от вида.

Критика

Разработка Wget идёт медленно, многие новые расширения протоколов HTTP, FTP, сценарии JavaScript и другие функции не поддерживаются.

В некоторых случаях хорошей альтернативой может являться cURL, а для создания зеркал сайтов (чего cURL не умеет[10]) обычно используется rsync. В версии 1.17 и выше обязательна поддержка SSE2-инструкций процессором.

wget2

Следующее значительное обновление Wget должно произойти в wget2, который, предположительно, должен прийти ему на смену. wget2 обладает значительным количеством усовершенствований по сравнению с Wget, в первую очередь касающихся производительности:

  • Поддержка HTTP/2
  • HTTP-сжатие
  • Параллельные соединения
  • TCP Fast Open

и рядом других.

Основным разработчиком wget2 является Тим Рюсен (Tim Rühsen), также являющийся одним из основных разработчиков и текущих майнтейнеров Wget.

Клоны

Для встроенных систем характерен ограниченный размер памяти и для них есть клоны, которые имитируют интерфейс и поведение GNU Wget, но имеют меньше опций, в основном, только скачивание файла:

См. также

Примечания

  1. Домашняя страница Wget. Дата обращения: 6 октября 2021. Архивировано 15 сентября 2021 года.
  2. Shah D. wget-1.24.5 released [stable] — 2024.
  3. The wget Open Source Project on Open Hub: Languages Page — 2006.
  4. https://www.gnu.org/software/wget/
  5. https://git.savannah.gnu.org/cgit/wget.git/tree/README
  6. *nix
    -системах соглашений в командной строке эта программа вызывается словом, начинающимся со строчной буквы: wget
  7. wget2 on Gitlab Архивная копия от 1 марта 2018 на Wayback Machine (англ.)
  8. Руководство GNU wget. Дата обращения: 6 октября 2021. Архивировано 6 октября 2021 года.
  9. wget manual Архивная копия от 6 октября 2021 на Wayback Machine Возвращаемый статус (en)
  10. cURL FAQ Архивная копия от 6 октября 2021 на Wayback Machine: «Curl is not a web site mirroring program.»

Ссылки