MyTetra Share
Делитесь знаниями!
wget - основные параметры
Время создания: 25.01.2009 14:31
Текстовые метки: wget, download
Раздел: Компьютер - Linux - Сеть в Linux
Запись: xintrea/mytetra_syncro/master/base/0000000729/text.html на raw.github.com

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



Скачивание одного файла


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


wget -t 45 -c --server-response --referer=http://letitbit.net/6f75c/niko.avi.html http://r103.letitbit.net/download/6f75c/niko.avi


где


  • -t 45 - количество повторов в случае разрыва соединения
  • -c - режим докачки. Указывает wget продолжать закачку файла. Если файл в текущей директории уже есть, на сервер будет отправлен запрос на продолжение закачки
  • --server-response - выдавать на экран протокол ответа сервера
  • --referer=... - указывает referer URL. Параметр необходим для закачки с тех серверов, которые проверяют referer URL, и не дают скачать файл если он не принадлежит данному серверу
  • последний параметр в командной строке - это URL скачивемого файла. Этот файл будет положен в текущую директорию.


Скачивание списка файлов


Если есть файл, внутри которого находится список файлов для скачивания (один URL на одной строке), то закачать по такому списку можно командой


wget -i linkfile.txt



Ограничение скорости закачки


Для ограничения скорости закачки можно воспользоваться параметром


--limit-rate=10K


в данном случае скорость будет ограничена 10 Кб/сек.



Скачивание файлов по шаблону


При перекачке по FTP можно в именах файлов указывать шаблоны (естественно, "закавычивая" их). Например, команда


wget 'ftp://nsk.su/pub/Linux/redhat-5.2/updates/i386/XFree86*.rpm'


скачает все обновления к системе XFree86.



Рекурсивное скачивание сайтов


Для рекурсивного скачивания используются ключи "-r", "-l" и "-np". Ключ "-r" (recursive) включает рекурсивность. Ключ "-l" (level) позволяет указать насколько "глубоко" программа должна следовать по ссылкам; 0 -- бесконечно глубоко, по умолчанию установлено 5. Ключ "-np" (no parent) запрещает следовать ссылкам выше указанной директории. Ключ "-k" указывает что ссылки внутри html файлов будут преобразованы так, чтобы была нормальная навигация при локальном просмотре


При рекурсивном скачивании wget автоматически создает соответствующее дерево директорий.


К примеру, следующая команда могла бы использоваться для скачивания целого домашнего сайта (адрес вымышленный):


wget -r -l 0 -np -k http://www.h-hosts.com/users/goofy/


При этом файлы будут помещаться в директорию ./www.h-hosts.com/users/goofy/.


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


wget -r -l 0 -np -k http://www.h-hosts.com/users/goofy/ -с


Замечание. Wget, будучи культурной программой, при рекуррентном скачивании уважает т.н. "Протокол Web-роботов", и может пропускать часть файлов (запрещенных в файле robots.txt на сервере). Чтобы отключить эту "культурность", можно воспользоваться ключом "-e robots=off". Почитать про Протокол Web-роботов можно в info-документации по Wget, воспользовавшись командой info wget appendices robots.



Скачивание с сайта только определенного контента


Можно воспользоваться командой вида


wget -rkpE -A jpg,png,gif,css http://somesite.com


Этой командой будет скачан сайт somesite.com рекурсивно, то есть все ссылки на html файлы, которые будут найдены в index.html этого сайта, будут обработаны и скачаны, с них тоже будет все скачано и т. д.


Опция -А ограничивает скачиваемый контент по допустимым расширениям, таким образом запрещая скачивать, к примеру, tar.gz архивы. При этих условиях wget не пойдет дальше указаного домена и, кроме того, будет скачивать только те реквизиты (-p, т.е. картинки и стили) которые расположены на том же сайте.


Однако, добавив опцию -H можно нечаянно создать локальную копию интернета в пределах 5 рекурсивных ссылок. Надо быть осторожным. Но и для этого есть опция -l - задающая уровень скачиваемой вложенности.



Закачка в фоновом режиме


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


Сообщения, которые выдавались бы на экран, будут идти в файл wget.log (а если он уже есть, то в wget.log.1, wget.log.2 и т.д.). Эти лог-файлы формируются в текущей директории.


Пример:


bobby:~/soft% wget -b http://www.mit.edu/afs/sipb/user/xiphmont/cdpa

ranoia/download/cdparanoia-III-alpha9.5.src.tgz

Continuing in background.

Output will be written to `wget-log'.

bobby:~/soft% _


Для просмотра log-файла по мере скачивания удобно пользоваться командой "tail -f":


bobby:~/soft% tail -f wget-log



Использование прокси-серверов


Wget умеет пользоваться прокси-серверами как для HTTP, так и для FTP. Достаточно перед вызовом программы присвоить адрес прокси-сервера переменным окружения http_proxy или ftp_proxy соответственно (имена маленькими буквами!).


Wget понимает как "официальное" указание адреса, так и сокращенное. Поэтому команды


export http_proxy=http://proxy.nsc.ru:8080/


и


export http_proxy=proxy.nsc.ru:8080


эквивалентны.



Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования