Ich verwende wget, um alle Bilder von einer Website herunterzuladen, und es funktioniert einwandfrei, speichert jedoch die ursprüngliche Hierarchie der Website mit allen Unterordnern, sodass die Bilder verteilt sind. Gibt es eine Möglichkeit, alle Bilder in einen einzigen Ordner herunterzuladen? Die Syntax, die ich momentan verwende, lautet:
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
-A
Option accept ein bisschen mehr herumspielen. Weitere Informationen finden Sie in der Wget-Dokumentation zu Dateitypen . Wenn Sie in das aktuelle Verzeichnis herunterladen, können Sie auch die Verzeichnispräfixoption entfernen-P
. Wenn Sie einen einzelnen Dateityp herunterladen, z. B. nur JPGs, verwenden Sie so etwas wiewget -r -A.jpg http://www.domain.com
. Schauen Sie sich die erweiterten Beispiele an , die in der Wget-Dokumentation enthalten sind.-nd
das oben Gesagte hinzufügen , funktioniert es. Sie können auch mehrere -A-Flags wie-A "*foo*" -A "*bar*"
--level=inf
oder--level=9999999999
weil erwget
aufgrund der standardmäßigen maximalen Rekursionstiefe von wahrscheinlich den Job sabotiert5
.-nd
: keine Verzeichnisse (alle Dateien im aktuellen Verzeichnis speichern;-P directory
das Zielverzeichnis ändert)-r -l 2
: rekursive Ebene 2-A
: akzeptierte Erweiterungen-H
: span hosts (wget lädt standardmäßig keine Dateien von verschiedenen Domänen oder Subdomänen herunter)-p
: Seitenanforderungen (enthält Ressourcen wie Bilder auf jeder Seite)-e robots=off
: Befehl ausführen,robotos=off
als ob er Teil der.wgetrc
Datei wäre. Dadurch wird der Roboterausschluss deaktiviert. Dies bedeutet, dass Sie robots.txt und die Roboter-Meta-Tags ignorieren (Sie sollten wissen, welche Auswirkungen dies hat, seien Sie vorsichtig).Beispiel: Holen Sie sich alle
.jpg
Dateien aus einem beispielhaften Verzeichnis:quelle
Ich habe ein Shellscript geschrieben, das dieses Problem für mehrere Websites löst: https://github.com/eduardschaeli/wget-image-scraper
(Kratzt Bilder aus einer Liste von URLs mit wget)
quelle
Probier diese:
und warten Sie, bis alle zusätzlichen Informationen gelöscht sind
quelle
wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Laut Manpage lautet das -P-Flag:
Dies bedeutet, dass nur das Ziel angegeben wird, aber wo der Verzeichnisbaum gespeichert werden soll. Der Baum wird nicht in nur ein Verzeichnis reduziert . Wie bereits erwähnt, macht das Flag -nd das tatsächlich.
@ Jon in Zukunft wäre es vorteilhaft zu beschreiben, was die Flagge tut, damit wir verstehen, wie etwas funktioniert.
quelle
Die vorgeschlagenen Lösungen eignen sich perfekt zum Herunterladen der Bilder und wenn es ausreicht, alle Dateien in dem von Ihnen verwendeten Verzeichnis zu speichern. Wenn Sie jedoch alle Bilder in einem bestimmten Verzeichnis speichern möchten, ohne den gesamten hierarchischen Baum der Site zu reproduzieren, versuchen Sie, der von Jon vorgeschlagenen Zeile "Schnittverzeichnisse" hinzuzufügen.
In diesem Fall verhindert Cut-Dirs, dass wget Unterverzeichnisse bis zur 3. Tiefenebene im hierarchischen Baum der Website erstellt und alle Dateien in dem von Ihnen angegebenen Verzeichnis speichert. Sie können weitere 'Cut-Dirs' mit höheren Nummern hinzufügen, wenn Sie dies möchten beschäftigen sich mit Websites mit einer tiefen Struktur.
quelle
Das Dienstprogramm wget ruft Dateien aus dem World Wide Web (WWW) mit weit verbreiteten Protokollen wie HTTP, HTTPS und FTP ab. Das Wget-Dienstprogramm ist ein frei verfügbares Paket und die Lizenz steht unter der GNU GPL-Lizenz. Dieses Dienstprogramm kann jedes Unix-ähnliche Betriebssystem einschließlich Windows und MAC OS installieren. Es ist ein nicht interaktives Befehlszeilentool. Hauptmerkmal von Wget ist seine Robustheit. Es ist so konzipiert, dass es in langsamen oder instabilen Netzwerkverbindungen funktioniert. Wget startet den Download automatisch dort, wo er bei einem Netzwerkproblem unterbrochen wurde. Lädt die Datei auch rekursiv herunter. Es wird so lange versucht, bis die Datei vollständig abgerufen wurde.
Installieren Sie wget auf dem Linux-Computer sudo apt-get install wget
Erstellen Sie einen Ordner, in den Sie Dateien herunterladen möchten. sudo mkdir myimages cd myimages
Klicken Sie mit der rechten Maustaste auf die Webseite. Wenn Sie beispielsweise den Bildspeicherort möchten, klicken Sie mit der rechten Maustaste auf das Bild und kopieren Sie den Bildspeicherort. Wenn mehrere Bilder vorhanden sind, gehen Sie wie folgt vor:
Wenn 20 Bilder gleichzeitig aus dem Internet heruntergeladen werden können, beginnt der Bereich zwischen 0 und 19.
wget http://joindiaspora.com/img {0..19} .jpg
quelle