Wget как утилита для загрузки всех изображений в каталоге mysite.com/img/

Wget как утилита для загрузки всех изображений в каталоге mysite.com/img/

Мой доступ к каталогу mysite.com/img/ заблокирован.

Однако все изображения в этом каталоге находятся в форме, n.jpgгде n — n-ное изображение.

Мой доступ mysite.com/img/n.jpgне заблокирован

Можно ли как-то сохранить изображения 1-500 ( mysite.com/img/1.jpgпо mysite.com/img/500.jpg)?

Я использую Ubuntu 11.10.

решение1

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

wget http://mysite.com/img/{1..500}.jpg

Также есть возможность создания цикла, что позволяет делать небольшую паузу между запросами.

for n in $(seq 1 500); do
  wget http://mysite.com/img/${n}.jpg
  sleep 0.1
done

(Вышеуказанное можно выполнить непосредственно в оболочке.)

решение2

Есть также другой способ сделать это, wgetкоторый я успешно использовал для одного сайта, и вы должны быть в состоянии изменить инструкции ниже для других сайтов. Он включает в себя генерацию списка URL-адресов и затем передачу этого списка в wget.

1) В качестве примера предположим, что вы хотите скачать все 63 журнала в формате PDFЖурнал Полный Круг(журнал Ubuntu), но ваш менеджер загрузок не может загрузить их все сразу. Поэтому найдитесвязьпервого файла PDF и быстро проверьте, что ссылки на другие журналы имеют тот же формат URL.

2) С учетом знаний, полученных в части 1, мы теперь можем обратиться к нашему скрипту для генерации URL-адресов. Скрипт ниже запускает цикл until, который я модифицировал (спасибо его создателю). Вы модифицируете этот скрипт, помещая количество журналов в часть until [ $i = 63 ]и помещая правильный URL-адрес после echoи убеждаясь, что "$i"находится в правильной части URL-адреса для отображения, чтобы он менялся при каждом запуске цикла. URL-адреса генерируются, а затем добавляются в текстовый файл — это происходит за доли секунды при запуске скрипта и не так сложно настроить, как кажется!

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

#!/bin/bash
   i=0
   until [ $i = 63 ] ; do
    i=$(($i+1))
    echo "http://dl.fullcirclemagazine.org/issue"$i"_en.pdf" >> url.txt
done 

3) Наконец, предполагая, что вы url.txtнаходитесь в текущем рабочем каталоге, выполните:

wget -i url.txt  

Если вы хотите сохранить загрузки в другом месте, добавьте -P ~/MyDirectoryпослеurl.txt

Это работает. Если вы попробуете, нажмите Enter, ctrl cчтобы отменить загрузку, если вы не хотите загружать их все!

Связанный контент