Mein Zugriff auf das Verzeichnis mysite.com/img/ ist blockiert.
Allerdings liegen alle Bilder in diesem Verzeichnis in der Form vor, n.jpg
wobei n das n-te Bild ist.
Mein Zugang zu mysite.com/img/n.jpg
ist nicht blockiert
mysite.com/img/1.jpg
Gibt 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, wget
die 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 echo
und 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.txt
befindet sich im aktuellen Arbeitsverzeichnis) Folgendes aus:
wget -i url.txt
Wenn Sie die Downloads woanders speichern möchten, fügen Sie -P ~/MyDirectory
nachurl.txt
Es funktioniert. Wenn Sie es versuchen, drücken Sie die Eingabetaste, um ctrl c
den Vorgang abzubrechen, sofern Sie nicht alle herunterladen möchten.