bash-Skript zum Download einer Website

Manchmal möchte man den Inhalt einer ganzen Website oder eines Teils davon für den Offline-Aufruf verfügbar machen. Das folgende bash-Skript hilft dies zu realisieren. Wichtig sind einige Parameter, die helfen verschiedene serverseitige Sperren gegen Robots und Crawler zu umgehen.

Hier eine Auflistung der verwendeten Parameter mit Kurzbeschreibung der Funktion:

  • limitrate=200k: begrenzt Downloadrate auf 200 Kbs
  • noclobber: es werden keine bestehenden Dateien überschrieben (falls der Download unterbrochen und wieder fortgesetzt wird)
  • convertlinks: wandelt alle Verlinkung für die lokale Verwendung um
  • randomwait: fügt eine zufällige Wartezeit zwischen den Einzeldownloads hinzu (gegen Crawler-Schutz)
  • r: rekursiv – laden der kompletten Webseite mit allen verlinkten Unterseiten
  • p: lässt alle zusätzlichen Dateien, wie Style- oder Mediendateien herunterladen (dasselbe wie page-requisites)
  • E: stellt die korrekte Benennung der Dateiendung nach Dateiformat sicher
  • e robots=off: lade nicht wie ein Robot oder Crawler
  • U mozilla: gaukelt dem Webserver vor die Webseite im Mozilla-Browser aufzurufen anstatt sie mit einem Crawler wie wget aufzurufen

Hier nun das Skript:

#!/bin/bash
# Skript zum downloaden einer Website mit allen vererbten Seiten
wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla $1