Die hohe Kunst, Webseiten abzugreifen

Was tun, wenn eine Website uns daran hin­dern will, eine lokale Kopie von ihr an­zu­fer­tigen? Es versteht sich von selbst, dass wir eine solche Be­vor­mun­dungs­mass­nah­me so­gleich aus­hebeln werden!

Neulich bin ich auf ein interessantes Problem gestossen. Ich bekam es mit einer Seite im Web zu tun, die ich speichern wollte. «Klar, nichts Leichteres als das», denkt man sich, und betätigt Ctrl s (oder Datei > Seite speichern unter, falls man ein Tastaturkürzel-Verweigerer ist).

Die Überraschung kam, nachdem ich die gespeicherte HTML-Datei geöffnet habe: Sie enthielt zwar eine grosse Menge an Kram, aber nicht den eigentlichen Nutz-Inhalt. Eine Suche nach einigen Stichworten aus dem Texts der Seite hat diesen Befund bestätigt. Die Weg über Speichern unter liefert keine lokale Kopie, sondern nur einen Haufen nutzloser Bits und Bytes¹, ².

Es klappt via Zwischenablage

Es stellt sich natürlich eine Frage: Wie kommen wir trotzdem an die Inhalte heran? Klar, über die Druckfunktion ein PDF zu erstellen, wäre möglich. Dabei findet eine Konvertierung in ein anderes Format statt – und womöglich haben wir gute Gründe, HTML zu bevorzugen.

Ich habe zwei Methoden zur Lösung dieses Problems gefunden:

1) Ein kluger HTML-Editor

Ein HTML-Editor sollte in der Lage sein, ein Dokument auch über die Zwischenablage entgegenzunehmen. Das trifft für TinyMCE zu: Das ist ein freier Editor in Javascript, den viele von uns bestimmt als klassischen Editor von Word­press kennen (Tipps zu ihm gibt es hier). Er kommt auch auf html-cleaner.com zum Einsatz, einer Website, die HTML-Code von Ballast befreit. Das ist (wie hier beschrieben) dann hilfreich, wenn wir z.B. eine Worddatei fürs Web aufbereiten müssen.

TinyMCE erledigt den Job souverän: Wir markieren den Text auf der Ursprungsseite, betätigen Ctrl c, wechseln zu HTML-Cleaner, klicken dort ins HTML-Feld, betätigen Ctrl v und voilà, im Code-Feld daneben erscheint die HTML-Quelle. Die können wir kopieren und in unserem Lieblingseditor lokal speichern.

HTML-Cleaner liefert den Code und bereinigt ihn auf Wunsch auch noch.

2) Ein Uralt-Windows-Zwischenablage-Utility

Aus reiner Sturheit wollte ich wissen, ob es nicht auch eine Möglichkeit gibt, das Problem offline zu lösen. Und ja, das geht, und zwar mithilfe des kostenlosen Programms Windows Clipboard Viewer. Das ist zwar 2021 eingestellt worden, erfüllt seinen Zweck aber nach wie vor: Es zeigt den Inhalt der Zwischenablage in verschiedenen Formen an. Wenn wir HTML kopieren, dann liefert das Programm u.a. eine Vorschau, Text oder Unicode-Text und unter HTML-Format den eigentlichen Quellcode.

Den können wir hier markieren und kopieren und dann wie schon vorher über einen Texteditor speichern. Einen Schönheitsfehler hat das Programm: Es zeigt die Unicode-Zeichen falsch an. Das lässt sich aber korrigieren, indem wir in unserem Editor eine ANSI-Datei anlegen und speichern – nach dem Öffnen ist die Codierung dann korrekt.

Wer sucht, der findet: Der HTML-Code in der Zwischenablage.

Zwei Bemerkungen noch dazu:

Erstens ist Windows Clipboard Viewer eine grosse Hilfe, wenn wir uns dafür interessieren, welche Inhalte genau in der Zwischenablage stecken. Interessant zum Beispiel, was ein Programm wie Word alles für Informationen in die Zwischenablage stellt: Wir finden kopierten Inhalt als Rich Text (RTF), als HTML, als Objekt, als OLE, als Grafik im EMF-Format und in einem knappen Dutzend weiterer Varianten vor. Das ist zumindest für Entwickler von Interesse.

Zweitens hat Microsoft früher selbst ein ähnliches Programm mitgeliefert. Das hiess ClipBook Viewer (ClipBrd.exe). Das hatte mit Windows for Workgroups 3.1 seinen ersten Auftritt und ist mit Vista verschwunden.

Fussnoten

1) Ich bin der Frage nicht im Detail nachgegangen, wie der Nutzinhalt denn versteckt worden ist. Da riesige Mengen an Javascript vorhanden sind, liegt die Vermutung nahe, dass hier der Hase im Pfeffer liegt. Javascript wird gerne auch für Zwecke eingesetzt, die nicht unbedingt im Interesse der Nutzer sind. Die Sache mit der Paywall (siehe hier) könnte man dazu zählen.

Es wäre einen Versuch wert, ob die Website bei deaktiviertem Javascript eine speicherbare Datei liefert. Dazu könnten wir eine Browsererweiterung wie Noscript einsetzen. Das werde ich vielleicht noch tun – aber meine Prognose ist, dass die Website damit nicht funktioniert.

2) Apropos: Obwohl der Text, um den es mir geht, mit HTML-Code um die 7000 Bytes gross ist, umfasst die gespeicherte Datei zusammen mit den verlinkten Javascript- und CSS-Dateien geschlagene 1,1 Megabyte. Und ja, ich bin eher geizig veranlagt. Aber in welchem (nicht geizigen) Universum ist so etwas okay?

Beitragsbild: Das Objekt des Interesses (Pixabay, Pexels-Lizenz).

2 Kommentare zu «Die hohe Kunst, Webseiten abzugreifen»

  1. Willkommen in der Welt der modernen Websites!😀Du vermutest richtig, der Inhalt (das „Document Object Model“, „DOM“) wird häufig von JavaScript oder neu WebAssembly verändert. Man trennt immer häufiger den statischen vom dynamischen Teil. Der statische Teil ist dann CSS, HTML und JavaScript, meist mit einem Framework wie Angular. Dieses holt sich die dynamischen Inhalte (etwa Artikel auf der Startseite) von einem Webservice.

    Vorteile sind (je nachdem) eine bessere Performance, die Website ist beschränkt offline funktionsfähig und man kann HTML, CSS, Bilder von einem Content Delivery Network ausliefern lassen, da es eben statisch ist. Generiert man das HTML dynamisch (wie es WordPress macht), geht das nicht so einfach.

    An den Sourcecode des aktuell dargestellten Inhalts kommt man im Firefox (und wohl den anderen Browser auch) per Entwicklertools (F12). Im Inspektor das HTML-Tag rechtsklicken und „Kopieren“ – „Äusseres HTML“ wählen.

    Der Weg über TinyMCE gibt aber möglicherweise schöneren Code, weil die ganzen Kommentare etc. nicht mitkommen.

Kommentar verfassen