Это старая версия документа.


wget — текстовая программа для скачивания файлов.

Просто скачать файл wget-ом:

wget ftp://vasya.pupkin.com/film.avi

Для продолжения оборвавшейся закачки пишем:

wget -c ftp://vasya.pupkin.com/film.avi

или

wget -continue ftp://vasya.pupkin.com/film.avi

Вместо -с можно написать -continue, так как каждый ключ имеет короткую и длинную формы: длинные ключи проще запомнить, но дольше писать. Можно легко смешивать различные формы написания.

Чтобы выкачать файлы из списка, содержащего прямые ссылки:

  wget -i pupkinlist
  или
  wget -input-file=pupkinlist

Здесь указывается только файл, в котором содержатся ссылки. Файл может так же быть HTML-страницей, в которой есть ссылки. Они будут выкачаны указанной выше командой.

Использование а-ля «Teleport Pro for Linux» При скачивании веб-сайтов возможностей больше, и поэтому требуется больше ключей. Опять-таки, запоминать их все не обязательно, можно сделать скрипт (а лучше несколько - под разные случаи) и вызывать их. Так вот, если имеется веб-сайт, и хотелось бы иметь его локальную копию на компьютере, чтобы, отключившись от сети, можно было неторопясь его почитать.

Зеркалирование сайтов на локальную машину: wget -m http://www.vasyapupkin.com/

Это эквивалентно -r -N -l inf -nr, поэтому напишу подробнее про эти опции.

Замечу, что при этом ссылки останутся абсолютными - то есть, будут указывать на Интернет-адреса, и удобно просматривать на локальной машине будет затруднительно.

Копирование сайта для локального просмотра: wget -r -l0 -k http://www.vasyapupkin.com/

При этом будет включена рекурсивная выгрузка (ключ -r, –recursive),

-np –no-parent

Не подниматься выше начального адреса при рекурсивной загрузке.

Для этого в wget имеется большое количество полезных опций - побольше, чем у телепорта флажков. Будучи завёрнутым в скрипт teleport и положенным на видное место (указанное в PATH), имеем удобство применения и богатство настроек.

-r | -recursive

  Включить рекурсивный просмотр каталогов и подкаталогов на удал©нном сервере.

-l depth | -level=depth

  Определить максимальную глубину рекурсии равной depth при просмотре каталогов на удал©нном сервере. По умолчанию depth=5.

-np | -no-parent

  Не переходить в родительский каталог во время поиска файлов. Это очень полезное свойство, поскольку оно гарантирует, что будут копироваться только те файлы, которые расположены ниже определ©нной иерархии.

-A acclist | -accept acclist

-R rejlist | -reject rejlist

  Определить раздел©нные запятыми списки суффиксов им©н файлов или шаблонов, чтобы принять или отвергнуть копирование файлов. Подробнее смотрите раздел 13.4.3.

-k | -convert-links

  Превратить абсолютные линки в HTML документе в относительные линки. Преобразованию подвергнутся только те линки, которые указывают на реально загруженные страницы; остальные не будут преобразовываться.
  Заметим, что лишь в конце работы Wget сможет узнать какие линки были реально загружены. Следовательно, лишь в конце работы Wget будет выполняться окончательное преобразование.

http-user=user

-http-passwd=password

  определить имя пользователя как user и пароль как password на HTTP сервере. В соответствии с типом обращения, Wget будет кодировать эти параметры с использованием одной из схем кодирования: basic (не секретная) и digest.

-A acclist –accept acclist -R rejlist –reject rejlist

Список имен файлов, разделенных запятыми, которые следует или не следует загружать. Разрешается задание имен файлов по маске.

-H –span-hosts

Разрешает посещать любые сервера, на которые есть ссылка.

-p –page-requisites

Загружать все файлы, которые нужны для отображения страниц HTML. Например: рисунки, звук, каскадные стили.

По умолчанию такие файлы не загружаются. Параметры -r и -l, указанные вместе могут помочь, но т.к. Wget не различает внешние и внутренние документы, то нет гарантии, что загрузится все требуемое.

-k –convert-links

После завершения загрузки конвертировать ссылки в документе для просмотра в автономном режиме. Это касается не только видимых ссылок на другие документы, а ссылок на все внешние локальные файлы.

Каждая ссылка изменяется одним из двух способов:

  • Ссылки на файлы, загруженные Wget изменяются на соответствующие относительные ссылки.

Например: если загруженный файл /foo/doc.html, то ссылка на также загруженный файл /bar/img.gif будет выглядеть, как ../bar/img.gif. Этот способ работает, если есть видимое соотношение между папками одного и другого файла.

  • Ссылки на файлы, не загруженные Wget будут изменены на абсолютные адреса этих файлов на удаленном сервере.

Например: если загруженный файл /foo/doc.html содержит ссылку на /bar/img.gif (или на ../bar/img.gif), то ссылка в файле doc.html изменится на http://host/bar/img.gif.

Благодаря этому, возможен автономный просмотр сайта и файлов: если загружен файл, на который есть ссылка, то ссылка будет указывать на него, если нет - то ссылка будет указывать на его адрес в интернет (если такой существует). При конвертировании используются относительные ссылки, значит вы сможете переносить загруженный сайт в другую папку, не меняя его структуру.

Ссылки: Их очень много. Вот <a href=«http://www.inp.nsk.su/%7Ebolkhov/teach/inpunix/typ_wget.ru.html»>здесь</a> лежит простое описание возможностей wget, <a href=«http://linux.zp.ua/doc/ru/books/shevel/node103.html»>здесь</a> часть ключей с интересными комментариями. Что-то взято <a href=«http://forum.ixbt.com/topic.cgi?id=24:7978»>отсюда</a> и <a href=«http://www.lifehacker.com/software/top/geek-to-live--mastering-wget-161202.php»>отсюда</a>. Ну и конечно это не отменяет прочтение мануала, в том числе на <a href=«http://linuxwiki.sbin.ru/index.php/Man:wget»>русском</a>.