In einem der nächsten Beiträge möchte ich auf das Thema Vergänglichkeit im Internet/Web eingehen. Vieles geht dort leider verloren, weil es keine angemessene Archivierung gibt. Selbst Projekte wie archive.org können nur einen Teil des Webs erhalten. Das ist recht vielschichtig und betrifft auch z.B. Spiele. Selbst bei den älteren Titeln sind viele alleine über die letzten ~20 Jahre verloren gegangen. Wie das in Zukunft aussieht, kann man sich bei DRM & Cloudzwang denken. Wir haben da halt nicht wirklich was in Richtung Nationalbibliothek.

Jedenfalls wollte ich zumindest für das Web aufzeigen, wie man selbst einen Teil davon archivieren kann. ArchiveBox ist eine quelloffene Software, für die ein Raspberry Pi 4 völlig ausreicht. Sie kann Webseiten mit verschiedenen Techniken archivieren und setzt bewusst auf simple, verbreitete Formate - mit dem Hintergedanke, dass man die in XX Jahren noch lesen kann. Denn das nächste Problem ist ja: Selbst wenn die Daten das überleben, sind die dann noch nutzbar? Proprietäre Formate von Programmen, die vor X Jahren eingestellt wurden, können da problematisch sein. Mit HTML, PDF, PNG & co. stehen die Chancen deutlich besser - darauf setzt ArchiveBox, sieht erst mal sinnvoll aus.

Leider ist mir recht schnell ein großes Problem aufgefallen: Cookie-Banner. Da die EU offensichtlich noch nie was vom "Do Not Track" HTTP-Header (DNT) gehört hatte, gibt es zum jetzigen Stand keine direkt automatisierbare Möglichkeit, um den Tracking-Wahnsinn abzulehnen oder wenigstens auszublenden. Das ist ein großes Problem, weil sich so ziemlich überall beim ersten Besuch große Dialoge über den Inhalt legen, sodass man bestenfalls noch ein paar Fragmente davon bekommt. Der Rest der Seite ist natürlich auch abgeschnitten. Hier mal beispielhaft für Heise. Ich habe das mit insgesamt 5 größeren deutschen Nachrichtenseiten durch probiert, es sieht überall ähnlich aus.



Was kann man dagegen tun?
Am besten wäre natürlich, die Cookie-Banner automatisiert vor dem Archivieren zu entfernen. Dazu gibt es ein Bugticket von 2019, das jedoch bisher nicht eingebaut wurde. Die Verantwortlichen sehen dafür zwei größere Umstellungen notwendig, u.a. um JavaSkript ausführen zu können. Ich habe selbst mal ein bisschen herum probiert mit Chromium, da die das (unter anderem) nutzen. Meine Idee war: Die Erweiterung "I stoll don't care about cookies" laden. Dann sollte zumindest die mit Chromium archivierte Fassung frei von den Bannern sein. Praktischer weise kann man die Erweiterung runter laden, entpacken & mit -load-extension den Pfad übergeben. So lädt & aktiviert Chromium die automatisch, d.H. man könnte das super ohne Interaktion generieren.

Ich habe das also mit jeweils einem neuen Datenverzeichnis aufgerufen, da ansonsten ja die Bestätigung beim ersten Aufruf gespeichert werden würde:
Code:
id=30; chromium --headless=new --user-data-dir=/tmp/chromium-tmp$id/ --window-size=1440,2000 --screenshot=screen$id.png --virtual-time-budget 10000 https://welt.de
Das funktioniert auch, aber leider nicht immer - manche Screenshots enthalten einen Cookie-Banner, andere nicht. Warum? Weil Chrome (auch mit --virtual-time-budget) nur wartet, bis der DOM von der Seite geladen ist. Erweiterungen werden nicht berücksichtigt und die Anti-Cookiebanner-Erweiterungen warten auf diese Banner, um sie durch zu klicken. Das kann einen Moment dauern, weil die ja per Polling warten müssen. Folglich kommt es drauf an, wie schnell die Erweiterung ist. Ich habe keinen Weg gefunden, Chromium auf die Erweiterungen warten zu lassen - das ist so vermutlich nicht vorgesehen. Schade, nachdem der neue Headless-Modus es seit relativ kurzer Zeit ermöglicht, Screenshots mit geladenen Erweiterungen zu erstellen.

Ich sehe nur zwei kurzfristige Workarounds: Die Leseansicht ("Readability") nutzen. Dort wird anscheinend kein JS geladen und daher hat man auch keine Cookie-Banner. Allerdings fehlt dafür das gesamte Layout. Der Text geht ohne auch nur 1 Pixel Abstand vom linken bis zum rechten Rand - angenehmes lesen sieht anders aus. Außerdem natürlich unschön, wenn man daraus Screenshots erstellen möchte, etwa als Quelle an anderer Stelle.



Besser (oder weniger schlecht): Die Seite ohne Screenshot laden, einige Sekunden warten, bis die Erweiterung den Cookie-Banner entfernt & dann erst den Screenshot machen. Dann hätten wir wenigstens das originale Layout.

Fazit: Wieder ein Problem mehr

Unschön, aber da sehen wir, was für Probleme diese Cookie-Banner mit sich bringen. Es wird Zeit, dass dafür endlich ein Standard flächendeckend unterstützt wird. Den DNT-Header für die Kategorien "Notwendige" Cookies erweitern & von mir aus können die Browser auch unaufdrünglich (!) vor dem Besuch einer Seite im Eck nachfragen, ob man die globalen Einstellungen für diese Seite einzeln ändern möchte (ähnlich wie Werbeblocker auf einzelnen Seiten abschalten). Dann wäre auch das Thema mit den manipulativen Cookie-Bannern vom Tisch.

Auf jeden Fall brauchte es einen vernünftigen Standard. Die Banner nerven nicht nur die Nutzer, sondern stellen sämtliche Automatisierungen vor unnötige Probleme. Könnte man dafür einfach den DNT-Header auf 0 setzen, würde ArchiveBox super funktionieren. Ich möchte gar nicht wissen, wie viel Zeit damit schon an anderer Stelle verschwendet wurde...