Wie lade ich mit wget alle Dateien (aber nicht HTML) von einer Website herunter?

162

Wie verwende wgetich alle Dateien von der Website?

Ich benötige alle Dateien außer den Webseitendateien wie HTML, PHP, ASP usw.

Aniruddhsinh
quelle
Selbst wenn Sie PHP herunterladen möchten, ist es mit wget nicht möglich. Mit wget können wir nur rohes HTML erhalten. Ich denke, Sie kennen den Grund
Venkateshwaran Selvaraj
NB: Überprüfen Sie wget --spiderimmer zuerst und fügen Sie immer -w 1(oder mehr -w 5) hinzu, damit Sie den Server der anderen Person nicht überfluten.
Isomorphismen
1
Wie kann ich alle PDF-Dateien auf dieser Seite herunterladen? pualib.com/collection/pua-titles-a.html
Stack Overflow ist eine Site für Programmier- und Entwicklungsfragen. Diese Frage scheint nicht zum Thema zu gehören, da es nicht um Programmierung oder Entwicklung geht. Weitere Informationen zu diesen Themen finden Sie hier in der Hilfe. Vielleicht ist Super User oder Unix & Linux Stack Exchange ein besserer Ort, um zu fragen. Siehe auch Wo poste ich Fragen zu Dev Ops?
Jww

Antworten:

262

So filtern Sie nach bestimmten Dateierweiterungen:

wget -A pdf,jpg -m -p -E -k -K -np http://site/path/

Oder wenn Sie lange Optionsnamen bevorzugen:

wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/

Dies wird die Site spiegeln, aber die Dateien ohne jpgoderpdf Erweiterung werden automatisch entfernt.

Zsolt Botykai
quelle
17
Wenn Sie nur Dateien ohne vollständige Verzeichnisarchitektur herunterladen möchten, können Sie die Option -nd verwenden .
Diabloneo
4
Was bedeuten die einzelnen Flaggen?
Jürgen Paul
Ich denke, es --acceptwird zwischen Groß- und Kleinschreibung unterschieden, also müssten Sie tun--accept pdf,jpg,PDF,JPG
Flimm
8
wget--progress--progress=dot
Ich bin
@Flimm Sie können auch das --ignore-caseFlag verwenden, um die --acceptGroß- und Kleinschreibung nicht zu berücksichtigen .
Harter
84

Dadurch wurde die gesamte Website für mich heruntergeladen :

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/
Izilotti
quelle
20
+1 für -e robots=off! Dies hat endlich mein Problem behoben! :) Danke
NHDaly
12
Die --random-waitOption ist Genie;)
Poitroae
2
@izilotti Kann der Websitebesitzer herausfinden, ob Sie ihre Website-Dateien mit dieser Methode WGET?
Elias7
1
@whatIsperfect Es ist definitiv möglich.
Jack
1
@ JackNicholsonn Woher weiß der Websitebesitzer? Der verwendete Agent war Mozilla, was bedeutet, dass alle Header als Mozilla-Browser eingegeben werden, sodass es nicht möglich wäre, wget als verwendet zu erkennen. Bitte korrigieren Sie, wenn ich falsch liege. danke
KhoPhi
63
wget -m -p -E -k -K -np http://site/path/

Auf der Manpage erfahren Sie, was diese Optionen bewirken.

wgetfolgt nur Links, wenn auf der Indexseite kein Link zu einer Datei vorhanden ist, wgetweiß dann nichts über deren Existenz und lädt sie daher nicht herunter. dh. Es ist hilfreich, wenn alle Dateien auf Webseiten oder in Verzeichnisindizes verlinkt sind.

Jesse
quelle
Vielen Dank für die Antwort :) Es kopiert die gesamte Website und ich benötige nur Dateien (dh txt, pdf, Bild usw.) auf der Website
Aniruddhsinh
25

Ich habe versucht, Zip-Dateien herunterzuladen, die von Omekas Themenseite verlinkt sind - eine ziemlich ähnliche Aufgabe. Das hat bei mir funktioniert:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
  • -A: Akzeptiere nur Zip-Dateien
  • -r: rekursiv
  • -l 1: eine Ebene tief (dh nur Dateien, die direkt von dieser Seite verlinkt sind)
  • -nd: Erstellen Sie keine Verzeichnisstruktur, sondern laden Sie einfach alle Dateien in dieses Verzeichnis herunter.

Alle Antworten mit -k, -K, -Eetc Optionen haben wahrscheinlich nicht wirklich die Frage verstanden, wie diejenigen , die als zum Umschreiben von HTML - Seiten , um eine lokale Struktur zu machen, Umbenennen von .phpDateien und so weiter. Nicht relevant.

Um buchstäblich alle Dateien außer .html etc zu erhalten:

wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com
Steve Bennett
quelle
2
-AIch denke, es wird zwischen Groß- und Kleinschreibung unterschieden, also müssten Sie es tun-A zip,ZIP
Flimm
7

Sie können versuchen:

wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/

Sie können auch hinzufügen:

-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar

um die spezifischen Erweiterungen zu akzeptieren oder nur bestimmte Erweiterungen abzulehnen:

-R html,htm,asp,php

oder um die spezifischen Bereiche auszuschließen:

-X "search*,forum*"

Wenn die Dateien für Roboter (z. B. Suchmaschinen) ignoriert werden, müssen Sie außerdem Folgendes hinzufügen: -e robots=off

Kenorb
quelle
5

Versuche dies. Es funktioniert immer bei mir

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
Suneel Kumar
quelle
5
wget -m -A * -pk -e robots=off www.mysite.com/

Dadurch werden alle Dateitypen lokal heruntergeladen und aus der HTML-Datei auf sie verwiesen. Die Roboterdatei wird ignoriert

Abdalla Mohamed Aly Ibrahim
quelle
2

Auf Windows-Systemen können Sie wget bekommen

  1. Laden Sie Cygwin herunter
  2. GnuWin32 herunterladen
ebinx
quelle