Zum Inhalt springen

Ganze Website herunterladen unter Linux: 4 Wege

Ganze Website herunterladen unter Linux mit wget, HTTrack/WebHTTrack oder als ZIP im Browser: genaue Optionen, Grenzen und Lösungen für kaputte Kopien.

Website Downloader 10 Min. Lesezeit

Wer unter Linux eine ganze Website herunterladen möchte, hat vier realistische Möglichkeiten: wget --mirror mit den richtigen Optionen, HTTrack (oder dessen grafische Oberfläche WebHTTrack), das Seite speichern unter des Browsers für einzelne Seiten und einen browserbasierten Downloader, der Ihnen die komplette Website als eine ZIP-Datei liefert. Für die meisten Terminal-Nutzer erzeugt dieser Befehl eine Kopie, die offline funktioniert: wget --mirror --page-requisites --convert-links --adjust-extension --no-parent https://example.com/. Im Folgenden erfahren Sie, was jede Option bewirkt, wann HTTrack die bessere Wahl ist und warum manche Kopien ohne CSS, Bilder oder Inhalt ankommen.

Ganze Website herunterladen unter Linux: die 4 Wege im Überblick

MethodeWas Sie installierenGanze Website?Per JavaScript erzeugte SeitenErgebnisAm besten für
wgetMeist vorinstalliert; sonst sudo apt install wgetJaWird nicht ausgeführt, reine JS-Inhalte fehlenOrdner mit DateienSkripte, Server, wiederkehrende Aufgaben
HTTrack / WebHTTrackPakete httrack und webhttrackJaWird nicht ausgeführtOrdner plus Projekt- und LogdateienWer eine grafische Oberfläche und fortsetzbare Projekte bevorzugt
Seite speichern unterNichtsNein, eine SeiteSpeichert die Seite meist so, wie sie dargestellt wirdEine .html-Datei plus ein _files-OrdnerEinen einzelnen Artikel oder Beleg
Website DownloaderNichts, läuft im BrowserJa, bis zum Seitenlimit des TarifsGleiche Grenze: rein per JS gebaute Apps können als leere Hülle ankommenEine ZIP-DateiEine schnelle Komplettkopie ohne Terminal, auf jeder Distribution
Dieselbe Aufgabe auf zwei Arten: ein wget-Befehl mit --mirror im Terminal oder ein Adressfeld mit Download-Button im Browser. Beide liefern eine vollständige Offline-Kopie; sie unterscheiden sich bei Einrichtung und Kontrolle.

Falls Sie mehrere Geräte nutzen: Denselben Vergleich gibt es auch für den Mac, für Windows, das Chromebook sowie für iPhone und Android.

Weg 1: wget --mirror mit den Optionen, die Bilder und CSS offline funktionsfähig halten

Viele Anleitungen hören bei wget -r https://example.com auf. Damit landen zwar die HTML-Seiten auf der Festplatte, doch die Kopie öffnet sich meist ohne Gestaltung, mit kaputten Bildern und mit Links, die zurück auf die Live-Website zeigen. Der Befehl, der offline wirklich funktioniert, ist länger:

wget --mirror --page-requisites --convert-links --adjust-extension --no-parent --wait=1 --random-wait --limit-rate=300k -o mirror.log https://example.com/

Die Kurzform lautet wget -mpkE -np https://example.com/. Das bewirken die einzelnen Bestandteile:

  • --mirror (-m): Kurzschreibweise für rekursives Herunterladen mit unbegrenzter Tiefe und Zeitstempelabgleich (-r -N -l inf --no-remove-listing). Wegen -N holt ein späterer erneuter Aufruf desselben Befehls nur geänderte Dateien.
  • --page-requisites (-p): lädt zusätzlich alles, was eine Seite zur Darstellung braucht: Bilder, Stylesheets, Skripte und Schriften. Ohne diese Option erhalten Sie nacktes HTML.
  • --convert-links (-k): schreibt die Links in den heruntergeladenen Dateien so um, dass sie auf Ihre lokalen Kopien statt auf die Live-Website zeigen. Das geschieht ganz am Ende – brechen Sie wget mit Strg+C ab, bleiben die Links unverändert.
  • --adjust-extension (-E): hängt .html an Seiten an, die ohne Dateiendung ausgeliefert werden (etwa /ueber-uns), damit Ihr Browser sie als Webseite öffnet, statt sie zum Download anzubieten.
  • --no-parent (-np): steigt nie über das Startverzeichnis hinaus. Starten Sie bei https://example.com/blog/, bleibt wget innerhalb von /blog/.
  • --wait, --random-wait, --limit-rate: bremsen wget, sodass es sich wie ein höflicher Besucher verhält und nicht wie eine Anfragenflut.
  • -o mirror.log: schreibt die Fortschrittsausgabe in eine Logdatei, die Sie anschließend durchsuchen können.

Warum fehlen in meiner wget-Kopie CSS und Bilder?

Drei Ursachen erklären fast jeden Fall. Erstens fehlte -p oder -k, sodass Ressourcen nicht geladen wurden oder Links weiterhin ins Netz zeigen. Zweitens liegen die Ressourcen auf einem anderen Host, etwa cdn.example.com oder bei einem Schriftendienst; wget verlässt die Startdomain nur, wenn Sie es erlauben. Drittens werden Bilder per JavaScript eingefügt (zum Beispiel Lazy Loading über data-src-Attribute), und JavaScript führt wget nie aus. Aktuelle wget-Versionen folgen url()-Verweisen in CSS-Dateien, Hintergrundbilder kommen also normalerweise mit, sobald das Stylesheet geladen ist. Eine ausführlichere Checkliste finden Sie unter Heruntergeladene Website ohne Bilder und CSS? Die Lösung.

Wie verhindere ich, dass wget andere Websites oder übergeordnete Verzeichnisse lädt?

Standardmäßig bleibt rekursives wget auf dem Start-Host und wandert nicht quer durchs Netz. Um Ressourcen von einem CDN einzubeziehen und trotzdem die Kontrolle zu behalten, kombinieren Sie --span-hosts mit einer ausdrücklichen Positivliste: wget --mirror -p -k -E -np --span-hosts --domains=example.com,cdn.example.com https://example.com/. Nur die aufgeführten Domains werden abgerufen. Für Verzeichnisse nutzen Sie --no-parent und achten auf den abschließenden Schrägstrich: https://example.com/blog ohne Schrägstrich gilt als Datei namens blog, ihr „übergeordnetes Verzeichnis“ ist also die ganze Website. Um große Dateien auszulassen, ergänzen Sie etwa --reject "*.iso,*.zip".

Weg 2: HTTrack und WebHTTrack unter Ubuntu, Debian und Fedora

Manche Anleitungen stellen HTTrack als Windows-Programm dar. Das stimmt nicht: WinHTTrack ist die Windows-Oberfläche, unter Linux gibt es dieselbe Engine als Kommandozeilenprogramm httrack und als grafisches WebHTTrack, das einen kleinen lokalen Server startet und seine Oberfläche in Ihrem Webbrowser anzeigt.

HTTrack unter Linux installieren

  • Ubuntu, Debian, Linux Mint: sudo apt install httrack webhttrack
  • Fedora: sudo dnf install httrack (prüfen Sie, ob Ihre Version WebHTTrack mitliefert oder als separates Paket führt)
  • Arch: sudo pacman -S httrack

So verwenden Sie WebHTTrack

  1. Starten Sie webhttrack im Terminal oder über das Anwendungsmenü. Ihr Browser öffnet den HTTrack-Assistenten unter einer lokalen Adresse.
  2. Wählen Sie einen Projektnamen und einen Basispfad (standardmäßig ein Ordner websites in Ihrem Home-Verzeichnis).
  3. Geben Sie die Adresse ein, wählen Sie die Aktion Download web site(s) (in der deutschen Oberfläche entsprechend übersetzt) und öffnen Sie Set options, um Grenzwerte wie die Zahl der Verbindungen und die maximale Übertragungsrate anzupassen.
  4. Klicken Sie auf Start und lassen Sie das Fenster geöffnet, bis der Spiegel als fertig gemeldet wird. Ein unterbrochenes Projekt setzen Sie mit der Aktion Continue interrupted download fort.

HTTrack auf der Kommandozeile

httrack "https://example.com/" -O "$HOME/mirrors/example" "+*.example.com/*" -c2 -A200000 -v

Der Filter +*.example.com/* hält HTTrack auf der Website und ihren Subdomains, -c2 begrenzt auf zwei Verbindungen und -A200000 drosselt die Geschwindigkeit auf rund 200 KB/s. Der Ausgabeordner enthält die Website, eine index.html als Startseite, einen Cache-Ordner und hts-log.txt. HTTrack schreibt die Links automatisch für die Offline-Nutzung um – ein Grund, warum viele es nachsichtiger finden als wget. Wenn Sie lieber gar nichts installieren möchten, lesen Sie HTTrack Alternative: Website Downloader online ohne Installation.

Weg 3: „Seite speichern unter“ im Browser – und warum damit nur eine Seite gesichert wird

Drücken Sie in Firefox oder Chromium Strg+S und wählen Sie Webseite, komplett bzw. Webseite, vollständig. Sie erhalten eine .html-Datei und einen Ordner mit deren Bildern und Styles. Links werden nicht verfolgt: Eine Website mit 50 Seiten bedeutet 50 manuelle Speichervorgänge, und die Links zeigen weiterhin ins Netz.

Eine echte Stärke hat diese Methode aber: Der Browser speichert die Seite in der Regel so, wie sie gerade angezeigt wird, einschließlich der Inhalte, die JavaScript nach dem Laden ergänzt hat. Für eine einzelne Seite einer JavaScript-lastigen App kann das wget und HTTrack schlagen, die nie Skripte ausführen.

Weg 4: Ein browserbasierter Downloader, der die ganze Website als ZIP liefert

Wenn Sie keine Optionen feinjustieren möchten oder auf einer Distribution arbeiten, auf der sich Pakete nur umständlich installieren lassen (ein abgeschotteter Arbeitsrechner, ein unveränderliches System, ein Live-USB-Stick), übernimmt Website Downloader das Crawlen auf eigenen Servern. Sie geben die Adresse ein, sehen zu, wie die Seitenzahl steigt, und laden eine ZIP-Datei herunter, die jede Unterseite mit ihren Bildern, Stylesheets, Skripten, Schriften und Medien enthält – bereit, offline in jedem Browser geöffnet zu werden.

Adresse eingeben, den Live-Fortschritt beim Zählen der Seiten verfolgen und die fertige example.com.zip herunterladen. Ihr Computer muss während des Crawls nicht eingeschaltet bleiben.

Der Free-Tarif braucht kein Konto, umfasst bis zu 100 Unterseiten und bewahrt das Archiv einen Tag lang auf. Größere Websites erfordern einen Single-Site-Download (einmalig 7,99 EUR für bis zu 5000 Unterseiten und 2 GB, 30 Tage aufbewahrt) oder einen Monatstarif; Einzelheiten stehen auf der Preisseite. Es gelten dieselben ehrlichen Grenzen wie bei den Kommandozeilen-Tools: keine Seiten hinter einem Login, und Websites, die vollständig im Browser per JavaScript aufgebaut werden, können eine Hülle ohne Inhalt ergeben. Mehr zum Vorgehen lesen Sie unter Komplette Website mit allen Unterseiten herunterladen.

Warum ist meine Kopie kaputt? JavaScript-Seiten, 403 Forbidden und fehlende Ressourcen

Wie lade ich eine Website herunter, die ihre Inhalte per JavaScript erzeugt?

Manche Single-Page-Apps mit React, Vue oder Angular schicken dem Browser eine fast leere HTML-Datei, oft kaum mehr als <div id="root"></div>, und bauen alles Weitere per Skript auf. wget, HTTrack und die meisten Crawler speichern genau diese Datei, die Kopie öffnet sich also leer. Zur Prüfung vergleichen Sie Seitenquelltext anzeigen (was der Server schickt) mit dem Inspektor der Entwicklerwerkzeuge (was der Browser aufgebaut hat). Steht der Text nur im Inspektor, probieren Sie Folgendes:

  • Suchen Sie nach einer serverseitig gerenderten oder vorgerenderten Fassung; viele Frameworks geben pro Seite echtes HTML aus, und das lässt sich problemlos spiegeln.
  • Speichern Sie wichtige Seiten einzeln mit Seite speichern unter.
  • Geben Sie das gerenderte HTML einzelner URLs mit Headless-Chromium aus: chromium --headless --dump-dom https://example.com/seite > seite.html. Ressourcen werden dabei nicht lokal abgelegt – das eignet sich für Texte, nicht für eine pixelgenaue Kopie.

Warum erhalten wget oder HTTrack „403 Forbidden“, und hilft ein anderer User-Agent?

Ein 403 bedeutet, dass der Server die Anfrage verweigert. Viele Websites sperren Clients, die sich als Wget/... oder HTTrack ausweisen. Eine browserähnliche Kennung (--user-agent="Mozilla/5.0 ..." bei wget, -F "Mozilla/5.0 ..." bei HTTrack) überwindet einfache Filter, aber keine Bot-Schutzseiten, die JavaScript voraussetzen. Und wenn eine Website automatisches Kopieren bewusst verweigert, sollten Sie das als Antwort verstehen – besonders, wenn es nicht Ihre Website ist. Website Downloader meldet eine solche Ablehnung, statt Ihnen ein leeres Archiv zu liefern. Dazu passend: wget beachtet im rekursiven Modus die robots.txt; das Übergehen mit -e robots=off gehört nur auf eigene Websites.

Was in einer Offline-Kopie nie funktioniert

HTML, CSS, JavaScript, Bilder, Schriften, Videos und PDFs funktionieren offline. Alles, was den ursprünglichen Server braucht – Logins, Website-Suche, Formulare und APIs –, funktioniert nicht, egal mit welchem Tool.

Wie begrenze ich die Download-Geschwindigkeit und erkenne, ob der Spiegel vollständig ist?

Ein Spiegel stellt Hunderte oder Tausende Anfragen hintereinander. Auf einem kleinen Shared Host kann das wie ein Angriff wirken und zur Sperrung Ihrer IP führen. Nutzen Sie --wait=1 --random-wait --limit-rate=300k bei wget oder -c2 -A200000 bei HTTrack und lassen Sie große Aufträge zu ruhigen Zeiten laufen.

So prüfen Sie die Vollständigkeit:

  1. Das Ende des Logs lesen. wget endet mit einer Zeile FINISHED, der Anzahl heruntergeladener Dateien und Bytes sowie einer Zeile dazu, in wie vielen Dateien Links umgewandelt wurden. Fehlt diese Umwandlungszeile, wurde der Auftrag nicht abgeschlossen.
  2. Nach Fehlern suchen: grep -E "ERROR|failed" mirror.log. Bei HTTrack lesen Sie hts-log.txt.
  3. Seitenzahlen vergleichen. Zählen Sie Ihre Seiten mit find example.com -name '*.html' | wc -l und die Liste der Website selbst mit curl -s https://example.com/sitemap.xml | grep -c "<loc>". (Manche Sitemaps sind ein Index weiterer Sitemaps – folgen Sie diesen ebenfalls.)
  4. Nach Links suchen, die noch ins Netz zeigen: grep -rl "https://example.com" example.com | head.
  5. Offline testen. Trennen Sie die Netzwerkverbindung, öffnen Sie index.html und klicken Sie sich durch Menüs, Bilder und einige tief liegende Seiten.

Wie mache ich aus dem heruntergeladenen Ordner eine ZIP-Datei?

Führen Sie im Ordner, der den Spiegel enthält, zip -r example.com.zip example.com/ aus – oder tar -czf example.com.tar.gz example.com/, wenn die Kopie unter Linux bleibt. In GNOME Dateien, KDE Dolphin und den meisten anderen Dateimanagern klicken Sie mit der rechten Maustaste auf den Ordner und wählen Komprimieren. Ein einzelnes Archiv lässt sich leichter verschieben, sichern und an Kunden übergeben, und es hält Tausende kleiner Dateien zusammen. Möchten Sie diesen Schritt überspringen, liefert die browserbasierte Variante die ZIP-Datei direkt.

FAQ

Gibt es unter Ubuntu eine grafische Alternative zu wget?

Ja. WebHTTrack, installiert mit sudo apt install webhttrack, bietet Ihnen einen Assistenten im Browser auf Basis der HTTrack-Engine. Wenn Sie gar nichts installieren möchten, läuft Website Downloader in jedem Browser auf jeder Distribution und liefert eine ZIP-Datei. Weitere Desktop-Tools finden Sie unter Cyotek WebCopy Alternative für Mac, Linux & Chromebook.

Kann ich eine Website herunterladen, die schon offline ist?

wget und HTTrack brauchen einen erreichbaren Server, damit geht es also nicht. Hat das Internet Archive die Website erfasst, kann der Wayback Machine Downloader sie aus einem Snapshot ohne die archive.org-Leiste wiederherstellen; Wiederherstellungen bis 100 Seiten sind kostenlos, größere kosten einmalig 14,99 EUR. Die Schritte stehen unter Website aus der Wayback Machine wiederherstellen.

Lädt wget Seiten hinter einem Login herunter?

Standardmäßig nicht. Mit Ihrem eigenen Konto können Sie Browser-Cookies exportieren und mit --load-cookies cookies.txt übergeben, allerdings laufen Sitzungen oft mitten im Crawl ab. Website Downloader lädt keine Seiten hinter einem Login herunter.

Ist es legal, eine Website zu spiegeln?

Das Spiegeln der eigenen Website oder eine private Offline-Kopie öffentlicher Seiten wird in der Regel ganz anders bewertet als die erneute Veröffentlichung fremder Inhalte, die das Urheberrecht ohne Erlaubnis meist untersagt. Nutzungsbedingungen, Datenbankrechte und das Land, in dem Sie sich befinden, spielen alle eine Rolle, eine pauschale Antwort gibt es daher nicht. Dies ist keine Rechtsberatung; wenn Sie kopiertes Material weiterverwenden oder veröffentlichen möchten oder die Kopie als Beweis brauchen, fragen Sie einen Anwalt. Mehr dazu lesen Sie unter Ist es legal, eine Website herunterzuladen?

  • ganze Website herunterladen Linux
  • Linux
  • wget
  • HTTrack
  • Offline-Website