Введение
wget
предлагает большое количество расширенных функций, которые можно использовать для настройки и автоматизации процесса загрузки. Ниже приведены некоторые примеры.
Чтение URL-адресов из файла
Если у вас есть файл, содержащий URL-адреса, которые вы хотите загрузить, вы можете использовать параметр -i
:
wget -i file
Если вы укажете '-'
в качестве имени файла, URL-адреса будут считаны из стандартного ввода.
Создание зеркальной копии веб-сайта
Чтобы создать зеркальную копию веб-сайта на пять уровней в глубину, с той же структурой каталогов, что и у оригинала, только с одной попыткой для каждого документа, путем сохранения журнала активности в gnulog
, вы можете использовать команду:
wget -r https://www.gnu.org/-o gnulog
Вы также можете преобразовать ссылки в загруженных файлах, чтобы они указывали на локальные файлы, чтобы вы могли просматривать документы в автономном режиме:
wget --convert-links -r https://www.gnu.org/-o gnulog
Эти команды загружают веб-сайт « www.gnu.org » и сохраняют журнал активности в файле с именем «gnulog».
Загрузите HTML-страницу со всеми ее ресурсами
Чтобы загрузить только HTML-страницу, но убедиться, что все элементы, необходимые для отображения страницы, такие как встроенные изображения и внешние таблицы стилей, загружены, вы можете использовать параметры -p
и --convert-links
:
wget -p --convert-links http://www.example.com/dir/page.html
Эта команда сохранит HTML-страницу в www.example.com/dir/page.html
, а изображения, таблицы стилей и т. д. где-то в www.example.com/
, в зависимости от того, где они находились на удаленном сервере.
Если вы не хотите иметь все эти случайные каталоги сервера, просто сохраните все эти файлы в подкаталоге download/
текущего каталога:
wget -p --convert-links -nH -nd -Pdownload http://www.example.com/dir/page.html
Эта команда сохранит HTML-страницу и все ее ресурсы в подкаталоге «загрузки» текущего каталога.
Показать заголовки сервера
Чтобы получить www.lycos.com
index.html
, показывающий исходные заголовки сервера, вы можете использовать опцию -S
:
wget -S http://www.lycos.com
Если вы хотите сохранить заголовки сервера вместе с файлом, возможно, для постобработки, вы можете использовать параметр --save-headers
:
wget --save-headers http://www.lycos.com/
Эта команда сохранит заголовки сервера в файле index.html
.
Загрузите первые два уровня FTP-сайта
Чтобы загрузить первые два уровня wuarchive.wustl.edu
, сохранив их в /tmp
, вы можете использовать опции -r
, -l2
и -P/tmp
:
wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu
Эта команда загрузит первые два уровня wuarchive.wustl.edu
и сохранит их в /tmp
.
Скачать все файлы GIF из одного каталога
Если вы хотите загрузить все файлы GIF из каталога на HTTP-сервере, вы можете использовать параметры -r
, -l1
, --no-parent
и -A.gif
:
wget -r -l1 --no-parent -A.gif http://www.example.com/dir
Эта команда загрузит все файлы GIF из указанного каталога на HTTP-сервер.
Возобновление прерванных загрузок без перезаписи существующих файлов
Если ваша загрузка прервана и вы не хотите перезаписывать существующие файлы, вы можете использовать параметр -nc
:
wget -nc -r https://www.gnu.org
Эта команда возобновит загрузку с того места, где она была прервана, без перезаписи уже существующих файлов.
Зашифруйте свое имя пользователя и пароль для HTTP или FTP
Если вы хотите жестко закодировать свое имя пользователя и пароль для HTTP или FTP, вы можете использовать следующий синтаксис:
wget ftp://hniksic:[email protected]/.emacs
Эта команда загрузит файл .emacs
с указанного FTP-сервера, используя имя пользователя «hniksic» и пароль «mypassword».
Отправка загруженных документов на стандартный вывод
Если вы хотите, чтобы загруженные документы отправлялись на стандартный вывод вместо файлов, вы можете использовать опцию -O
:
wget -O - http://jagor.srce.hr/http://www.srce.hr
Эта команда загрузит документы с указанных веб-сайтов и отправит их на стандартный вывод вместо сохранения в виде файла 1.
Ограничить скорость загрузки
Если вы хотите ограничить скорость загрузки, чтобы избежать перегрузки вашего соединения, вы можете использовать опцию --limit-rate
. Например, чтобы ограничить скорость загрузки до 200k, вы можете использовать:
wget --limit-rate=200k http://example.com
Эта команда загрузит файл с указанного веб-сайта с максимальной скоростью 200 килобайт в секунду.
Загрузка файлов из списка URL-адресов
Если у вас есть список URL-адресов, с которых вы хотите загрузить файлы, вы можете использовать параметр -i
с файлом, содержащим все URL-адреса. Например:
wget -i urls.txt
Эта команда загрузит все файлы с URL-адресов, перечисленных в файле «urls.txt».
Загрузка файлов в фоновом режиме
Если вы хотите, чтобы wget
загружал файлы в фоновом режиме, вы можете использовать параметр -b
. Например:
wget -b http://example.com
Эта команда начнет загрузку файла в фоновом режиме, что позволит вам продолжить использовать терминал для других команд.
Загружайте файлы, только если они еще не присутствуют локально
Если вы хотите загружать только файлы, которых еще нет локально, вы можете использовать параметр -N
. Например:
wget -N http://example.com
Эта команда загрузит файл только в том случае, если он еще не присутствует локально или если локальная версия старше версии на сервере.
Заключение
Это лишь некоторые из расширенных возможностей использования wget
. Утилита чрезвычайно универсальна и может использоваться различными способами для автоматизации и настройки ваших загрузок. Обратитесь к справочной странице wget
или его онлайн-документации для получения дополнительной информации.