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 [ 118]

4
задан 17 August 2012 в 04:49

2 ответа

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

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

2) Имея знания, полученные в части 1, теперь мы можем обратиться к нашему сценарию для генерации URL. Сценарий ниже запускает цикл до, который я изменил (кредит его создателю). Вы модифицируете этот скрипт, поместив количество магазинов в часть 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 [ 1119]

Это работает - если вы попробуете это, введите ctrl c, чтобы прервать, если вы не хотите загружать их все!

0
ответ дан 17 August 2012 в 04:49

Наиболее простым решением, вероятно, является использование расширений bash brace

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

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

0
ответ дан 17 August 2012 в 04:49

Другие вопросы по тегам:

Похожие вопросы: