[Wget - насос для Интернета]
Wget 1.5.3. Руководство пользователя
VAP home logo

Примеры

Примеры разделены на три секции, по понятности. Первая часть - руководство для начинающих. Вторая часть объясняет некоторые наиболее общие возможности программы. Третья часть содержит советы для администраторов систем-зеркал, а также наиболее сложные свойства (которые можно назвать извращенными).


Простое применение

  • Скажем, вы хотите выгрузить URL. Достаточно набрать:

    wget http://fly.cc.fer.hr/

    Результат будет примерно следующим:

    --13:30:45--  http://fly.cc.fer.hr:80/en/
              => `index.html'
    Connecting to fly.cc.fer.hr:80... connected!
    HTTP request sent, awaiting response... 200 OK
    Length: 4,694 [text/html]
    
        0K -> ....                                         [100%]
    
    13:30:46 (23.75 KB/s) - `index.html' saved [4694/4694]
  • Но что произойдет если связь медленная, а файл длиннющий? Вероятнее всего соединение разорвется до момента получения файла, причем неоднократно. В этом случае Wget будет пытаться восстановить передачу до тех пор пока не выгрузит весь файл или не исчерпает все попытки (20 по умолчанию). Очень просто изменить количество попыток на 45 чтобы быть уверенным, что файл дойдет нормально:

    wget --tries=45 http://fly.cc.fer.hr/jpg/flyweb.jpg
  • Теперь заставим Wget работать в фоновом режиме и выводить отчет в файл "log". Поскольку затруднительно набирать "--tries", то мы воспользуемся "-t".

    wget -t 45 -o log http://fly.cc.fer.hr/jpg/flyweb.jpg &

    Амперсанд в конце команды переводит Wget в фоновый режим. Для снятия ограничения на количество попыток можно воспользоваться "-t inf".

  • Использование FTP примитивно. Wget сам позаботится о имени пользователя и пароле.

    $ wget ftp://gnjilux.cc.fer.hr/welcome.msg
    --10:08:47--  ftp://gnjilux.cc.fer.hr:21/welcome.msg
               => `welcome.msg'
    Connecting to gnjilux.cc.fer.hr:21... connected!
    Logging in as anonymous ... Logged in!
    ==> TYPE I ... done.  ==> CWD not needed.
    ==> PORT ... done.    ==> RETR welcome.msg ... done.
    Length: 1,340 (unauthoritative)
    
        0K -> .                                            [100%]
    
    10:08:48 (1.28 MB/s) - `welcome.msg' saved [1340]
  • Если вы укажете каталог, Wget для начала получит список каталога, обработает его и преобразует в HTML. Попробуйте:

    wget ftp://prep.ai.mit.edu/pub/gnu/
    lynx index.html

Использование для опытных

  • Вам необходимо прочитать список URL из файла? Нет проблем:

    wget -i file

    Если вместо "file" вы укажете "-", то URL-и будут читаться со стандартного ввода.

  • Создание зеркального образа GNU WWW сайта (с точно такой же структурой каталогов) только с одной попыткой на документ и сохранением отчета в файле "gnulog":

    wget -r -t1 http://www.gnu.ai.mit.edu/ -o gnulog
  • Получение первого уровня ссылок Yahoo:

    wget -r -l1 http://www.yahoo.com/
  • Получение index.html из "www.lycos.com" с выводом серверных заголовков:

    wget -S http://www.lycos.com/
  • Сохранение заголовков сервера в файле

    wget -s http://www.lycos.com/
    more index.html
  • Получение первых двух уровней "wuarchive.wustl.edu" с сохранением их в "/tmp".

    wget -P/tmp -l2 ftp://wuarchive.wustl.edu/
  • Вам необходимо выгрузить все GIF файлы из HTTP каталога. "wget http://host/dir/*.gif" не работает поскольку HTTP выгрузка не поддерживает глобирование. В этом случае воспользуйтесь:

    wget -r -l1 --no-parent -A.gif http://host/dir/

    Это слегка обходной вариант, но он работает. "-r -l1" означает рекурсивную выгрузку (см. "Рекурсивная выгрузка") с глубиной в один уровень. "--no-parent" означает, что ссылки на родительский каталог игнорируются (см. "Ограничения на уровне каталогов") и "-A *.gif" означает выгрузку только GIF файлов. '-A "*.gif"' тоже должно работать.

  • Предположим вы были в середине выгрузки, когда Wget был прерван. Теперь вы не хотите замещать уже существующие файлы. Тогда:

    wget -nc -r http://www.gnu.ai.mit.edu/
  • Если вам необходимо закодировать ваше имя пользователя и пароль для HTTP или FTP, то используйте соответствующий синтаксис URL (см. "Формат URL").

    wget ftp://hniksic:mypassword@jagor.srce.hr/.emacs
  • Если вам не нравится умалчиваемая визуализация выгрузки (1 Кбайт на точку, 10 точек в кластере, 50 точек в строке), то вы можете настроить ее через настройку точек (см. "Команды wgetrc"). Например, многим людям нравится двоичный стиль представления с 8 килобайтовыми точками и 512 килобайтовыми строками:

    wget --dot-style=binary ftp://prep.ai.mit.edu/pub/gnu/README

    Вы можете поэкспериментировать с другими стилями:

    wget --dot-style=mega ftp://ftp.cdrom.com/ls-lR
    wget --dot-style=micro http://fly.cc.fer.hr/

    Чтобы сделать данные установки постоянными, поместите их в ваш ".wgetrc" так, как это было описано ранее (см. "Пример wgetrc").


Использование для гуру

  • Если вы хотите, чтобы Wget поддерживал зеркало страницы (или FTP каталога), воспользуйтесь "--mirror" ("-m"), что является сокращением для "-r -N". Вы можете запускать Wget из файла crontab, чтобы выполнять проверку сайта каждое воскресенье:

    crontab
    0 0 * * 0 wget -m ftp://ftp.xemacs.org/pub/xemacs/ -o /home/me/log
  • Возможно вам понадобится проделать тоже самое с чьей-то домашней страницей. Но у вас нет желания выгружать оттуда графику, вас интересует только HTML.

    wget --mirror -A.html http://www.w3.org/
  • Как на счет выгрузки всех хостов близких к вам сетей? Это выглядит жутко медленным из-за DNS разрешения имен. Достаточно воспользоваться "-D" (см. "Доменная избирательность").

    wget -rN -Dsrce.hr http://www.srce.hr/

    Теперь Wget сможет корректно обнаружить, что "regoc.srce.hr" это тоже самое, что и "www.srce.hr", но даже не будет пытаться разбираться со ссылкой на "www.mit.edu".

  • У вас есть презентация и вы желаете превратить все эти тупые абсолютные ссылки в относительные? Воспользуйтесь "-k":

    wget -k -r URL
  • Вам необходимо чтобы выгружаемые документы выдавались на стандартный вывод вместо записи их в файлы? OK, но Wget автоматически умолкнет (включить "--quiet"), чтобы избежать смешивания вывода Wget и получаемых документов.

    wget -O - http://jagor.srce.hr/ http://www.srce.hr/

    Вы также можете комбинировать две опции и создавать тем самым невероятные потоки для выгрузки удаленных документов:

    wget -O - http://cool.list.com/ | wget --force-html -i -



ФОБОС: погода в г.Тольятти