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.


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.


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/

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.


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

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


5

Versuche dies. Es funktioniert immer bei mir

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

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


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.