Команда wget - пример использования

Команда wget в linux предназначена для загрузки информации из сети Интернет. Поддерживаются протоколы HTTP, HTTPS и FTP. Если нужно закачать сайт, или часть файлов из какого-то сайта, то здесь и пригодится команда wget. В Windows XP для этой цели я использовал программу Download Master, а в linux - wget. Ниже несколько простых примеров из моей личной практики, показывающих как выкачивать файлы с помощью wget.

А теперь примеры. Об одном я уже писал в статье Где скачать обновления для ETKA 7.2. Но здесь повторюсь с дополнениями. По адресу http://update1.lex-com.net/update/audi/0/ лежат exe-файлы, которые нужно закачать. В книге Скотта Граннемана - Linux карманный справочник, есть пример, на основании которого можно написать вот такую команду:

1
$ wget -r -l 0 -w 5 -A.exe http://update1.lex-com.net/update/skoda/0/

По идее, эта команда должна загрузить все файлы с расширением exe, которые находятся в http://update1.lex-com.net/update/skoda/0/. Ключ -l0 говорит о том, чтобы не идти глубже по иерархии, а закачивать только из текущего каталога, -w 5 - это задержка в 5 секунд перед закачкой следующего файла. Этот ключ нужен, чтобы не перегружать сервера запросами. -A.exe - закачивать только файлы с расширением .exe. Но эта команда не сработала и выдала ошибку. Скорее всего из-за того, что wget не смогла получить список файлов в каталоге. Так как http-сервер не отдает такой список. Зато это должен делать ftp-сервер и для ftp-протокола команда wget в таком виде сработает. Вот пример для ftp-сервера компании dlink:

1
$ wget -r -l2 -np -A.zip -w 1 ftp://dlink.ru/pub/ADSL/DSL-2640U_BRU_C/Firmware/

Но как же закачать наши exe файлы? Только указав в команде wget точную ссылку с именем файла:

1
$ i=320; while wget http://update1.lex-com.net/update/skoda/0/eupdsk"$i"0.exe; do let i++; done

В этой команде я точно указывал wget какой файл качать, а с помощью цикла while организовал закачку нужных файлов. Как только номер версии увеличится до несуществующего, команда wget вернет ошибку (false) и цикл прервется, закачка прекратится.

Вот еще один пример с закачкой фотографий. На одном из сайтов были выложены фотографии изделий из арбуза. Ссылки вели на сайт ru.fushki.net. Посмотрев несколько ссылок и увидев структуру имен файлов закачал их с помощью двух команд.

Со второй по девятую вот так:

1
$ i=2; while wget -w 3 http://ru.fishki.net/picsw/082010/11/post/arbuz/arbuz00"$i".jpg; do let i++; done

Правда фотография arbuz006.jpg отсутствовала, поэтому пришлось, задать i=7 и запустить команду еще раз, а затем уже закачать фотографии начиная с 10-й и до последней:

1
$ i=10; while wget -w 3 http://ru.fishki.net/picsw/082010/11/post/arbuz/arbuz0"$i".jpg; do let i++; done

Точно также я закачивал статистические данные сети Интернет от ресурса bigmir.net. Думаю идея понятна. Если имена файлов структурированы, то их можно закачивать командой wget, организовав простой цикл.

Статьи и новости схожей тематики:

Комментариев: 9

  1. vladimir_2008:

    Подскажите как правильно установить wget в windows

    Ответить

    Igorka Reply:

    Не подскажу - не устанавливал.

    Ответить

  2. Иван:

    Здравствуйте, у меня такая проблема нужно скачать все фотографии с помощью wget с сайта http://photo.rdx.cz/index.php?show=album&aid=412 именно фотографии а не их уменьшенные изображения, помогите пожалуйста.

    Ответить

    Igorka Reply:

    Будет время - помогу. А не проще автору сайта написать и попросить у него эти фотографии?

    Ответить

    Иван Reply:

    не мне к сожалению нужно их скачать именно с помощью вгета, если бы так всё было просто я бы давно так и сделал : )

    Ответить

    Igorka Reply:

    Домашнее задание, что ли? :)

    Ответить

    Иван Reply:

    да можно сказать что так :) просто учитель молодой и объяснять не умеет, а требовать требует. Первое задание я решил тоже не без помощи надо было скачать вот с этого сайта фотки тоже http://www.strnad.info/17plseMFFUK2011/ ну это решилось таким приказом wget -qO- http://www.strnad.info/17plseMFFUK2011/ | grep -o ‘images/[^"]*’ | egrep -v ‘_t\.|\.js$|\.css$’ | while read ; do wget -qP foto http://www.strnad.info/$REPLY ; done
    Ну а теперь осталось второе задание скачать с другого сайта как я писал в первом посте, сегодня я у него спрашивал он сказал что он для решения этой задачи он использовал 3x wget и 3x sed.

    Ответить

    Иван Reply:

    wget -qO- ‘http://photo.rdx.cz/index.php?show=album&aid=412′ | egrep -o ‘index.php\?show=photo&pid=[0-9]+&aid=412′ | sed ’s/.*pid=\([0-9]*\).*/\1/’ | while read num; do wget -P photo.rdx http://photo.rdx.cz/“$(wget -qO- “http://photo.rdx.cz/index.php?show=photo&pid=$num&aid=412″ | egrep -o ‘”showphoto/.+jpg”‘ | sed ’s/”//g’)”; done

    Ответить

  3. Igorka: Пример совместной работы команд wget egrep sed:

    [...] статье Команда wget - пример использования был показан простенький пример использования команды [...]

Оставьте свой отзыв