Wget-ähnliches Dienstprogramm zum Herunterladen aller Bilder im Verzeichnis mysite.com/img/

Wget-ähnliches Dienstprogramm zum Herunterladen aller Bilder im Verzeichnis mysite.com/img/

Mein Zugriff auf das Verzeichnis mysite.com/img/ ist blockiert.

Allerdings liegen alle Bilder in diesem Verzeichnis in der Form vor, n.jpgwobei n das n-te Bild ist.

Mein Zugang zu mysite.com/img/n.jpgist nicht blockiert

mysite.com/img/1.jpgGibt es eine Möglichkeit, die Bilder 1-500 ( bis ) zu speichern mysite.com/img/500.jpg?

Ich verwende Ubuntu 11.10

Antwort1

Die einfachste Lösung ist wahrscheinlich die Verwendung von Bash-Bracket-Erweiterungen

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

Es besteht auch die Möglichkeit, eine Schleife zu erstellen, sodass Sie zwischen den einzelnen Anfragen eine kurze Wartezeit einfügen können.

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

(Das Obige kann direkt in der Shell ausgeführt werden.)

Antwort2

Es gibt auch eine andere Möglichkeit, dies zu tun, wgetdie ich erfolgreich für eine Site verwendet habe, und Sie sollten in der Lage sein, die folgenden Anweisungen für andere Sites zu ändern. Dabei wird eine Liste von URLs generiert und diese Liste dann an übermittelt wget.

1) Nehmen wir als Beispiel an, Sie möchten alle 63 PDF-Magazine vonFull Circle Magazin(ein Ubuntu-Magazin), aber Ihr Download-Manager kann sie nicht alle auf einmal herunterladen. Suchen Sie also dieVerknüpfungder ersten PDF-Datei und überprüfen Sie schnell, ob die anderen Zeitschriftenlinks im gleichen URL-Format vorliegen.

2) Mit dem in Teil 1 gewonnenen Wissen können wir uns nun unserem Skript zuwenden, um die URLs zu generieren. Das folgende Skript führt eine Until-Schleife aus, die ich geändert habe (danke an den Ersteller). Sie ändern dieses Skript, indem Sie die Anzahl der Zeitschriften in den until [ $i = 63 ]Teil einfügen und danach die richtige URL einfügen echound sicherstellen, dass sich die "$i"im richtigen Teil der URL befindet, der wiederholt werden soll, sodass sie sich bei jedem Durchlauf der Schleife ändert. Die URLs werden generiert und dann an eine Textdatei angehängt – dies geschieht in Sekundenbruchteilen, wenn das Skript ausgeführt wird, und ist nicht so kompliziert einzurichten, wie es klingt!

Speichern Sie das Skript in einem Texteditor, machen Sie es ausführbar und führen Sie es aus. Ändern Sie es wie oben beschrieben, wenn Sie von einemandersSite als mein Beispiel.

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

3) Führen Sie abschließend (vorausgesetzt, es url.txtbefindet sich im aktuellen Arbeitsverzeichnis) Folgendes aus:

wget -i url.txt  

Wenn Sie die Downloads woanders speichern möchten, fügen Sie -P ~/MyDirectorynachurl.txt

Es funktioniert. Wenn Sie es versuchen, drücken Sie die Eingabetaste, um ctrl cden Vorgang abzubrechen, sofern Sie nicht alle herunterladen möchten.

verwandte Informationen