Web-Archiv Teil 4: Wallabag-Konfiguration und Paywall-Konfiguration

Wallabag destilliert Websites, indem es nur den Haupttext anzeigt und absichert – doch wie funktioniert das? Dahinter steckt das bekannte und robuste php-readability. Die Wallabag-Macher haben allerdings eine eigene Version namens graby gebaut. Dieses Tool errät quasi anhand des Verhältnisses von HTML und Plaintext, in welchem Bereich der HTML-Seite sich der Haupttext befindet und bereit diesen dann auf. Dies funktioniert natürlich nicht immer 100% perfekt, aber meist mindestens akzeptabel. In Wallabag gibt es einen Konfigurations-Ordner, der Profile für viele gängige Websites enthält. Diese enthält beispielsweise auch Informationen, wo der Author des Artikels im HTML gefunden werden kann oder weist den Parser an, eine „Druck“-Version statt der normalen Version herunterzuladen oder entstückelt mehrseitige Artikel. Sollte die Lieblings-Website hier nicht vorhanden sein, lässt sich auch schnell ein neues Profil anlegen.
All diese Dateien liegen in vendor/j0k3r/graby-site-config/domainname.tld.txt und lassen sich frei bearbeiten.

Wallabag ist sogar in der Lage, Paywalls zu umgehen und dahinter liegende Texte zu speichern — vorausgesetzt, man hat einen gültigen Login zum entsprechenden Web-Angebot. Die Software schaltet keinen Zugang frei 1. Heise hat seit einiger Zeit ein Heise+ genanntes Premiumabo, bei dem alle Artikel aus allen Publikationen online und unter eindeutiger URL bereit stehen — ideal! Die erwähnten Seiten-Konfigurationen regeln auch die Paywall-Unterstützung, sodass wir die entsprechende Datei nun für heise.de bearbeiten müssen.

Wir machen uns also auf, die Heise-Paywall aufzusperren. Wir öffnen die Datei vi /var/www/wallabag/vendor/j0k3r/graby-site-config/heise.de.txt und fügen am Ende folgendes hinzu:

requires_login: yes
login_uri: https://www.heise.de/sso/login/login
login_username_field: username
login_password_field: password
not_logged_in_xpath: /html/body/div[1]/header/div[1]/div/section/a-login/a[1]
login_extra_fields: forward=
login_extra_fields: permanent=1
login_extra_fields: ajax=1

Was bedeuten diese Befehle?
requires_login schaltet die Paywall-Unterstützung für diese Website frei.
login_uri ist die URI der Seite, die die Formulardaten der Anmeldeseite entgegen nimmt, zu entnehmen der post-Variable des entsprechenden form der Seite, die die Felder für Nutzername und Passwort enthält.
login_username_field und login_password_field sind die Parameternamen des zu übermittelnden Usernamens und Passworts, also die HTML-Namen der entsprechenden Formularfelder der Eingabemaske.
not_logged_in_xpath dient für das System zur Unterscheidung, ob man eingeloggt ist, oder nicht. Mir ist nicht 100% klar, ob dieser Wert für Heise korrekt ist, ich habe in der Dokumantation nichts dazu gefunden. Schlimmstenfalls wird für jeden Heise-Request versucht, sich einzuloggen.
login_extra_fields hängt weitere Formularfelder an, die im Originalformular vorhanden sind und ich übernommen habe.

Für zeit.de / Z+ sieht die Konfiguration so aus:

strip_id_or_class: volume-teaser
requires_login: yes
login_uri: https://meine.zeit.de/anmelden
login_username_field: email
login_password_field: pass
not_logged_in_xpath: /html/body/div[3]/div[2]/header/div[2]/div[1]/a
login_extra_fields: permanent=on

zeit.de bietet nur ein begrenztes Kostenlos-Kontingent an, dieser Zähler wird aber nur in einem Cookie im Browser gespeichert und somit von Wallabag ignoriert.
strip_id_or_class: volume-teaser blendet den Dieser Artikel erschien in Zeit XX aus.

Möchte man für seine Lieblingsseite die Konfiguration herausfinden oder testen, ist es am Einfachsten, im Browser den Login-Vorgang einmal durchzuführen und mittels der Entwicklertools die entsprechenden Werte im Netzwerk-Tab einzusehen.

Die Zugangsdaten zur Website müssen nun noch in Wallabag unter Site Credentials eingetragen werden.
Ob die Paywall-Unterstützung funktioniert, lässt sich überprüfen, indem man eine Seite der entsprechenden Domain vorher zum Archiv hinzufügt und sie dann hinterher wieder neu abruft – die Länge des Inhalts und die Lesedauer müsste sich nun geändert haben.

Für Übermedien, dass Steady als Paywall nutzt, habe ich die Konfiguration nicht erfolgreich hinbekommen und kann die Artikel demnach leider nicht im Volltext lesen.

Schlägt das Inhalte-Parsing einer Website grundsätzlich fehl oder möchte man eine grundlegend neue Seiten-Konfiguration einpflegen, empfiehlt sich die Seite von FiveFilters, wo man visuell die CSS-Klassen herausfinden kann. Dies lässt sich dann herunterladen und als Datei importieren.

Die folgenden Themen werden in der Wallabag-Artikelserie behandelt:
Einleitung —  Auf Vorrat gespeichert: Das eigene Web-Archiv auf dem NAS
Teil 1: Was kann Wallabag?
Teil 2: Wallabag via Docker auf Synology NAS
Teil 3: Wallabag-Tuning
Teil 4: Wallabag und Paywalls
Teil 5: Wallabag-Backup und Versionsupdates
Teil 6: RSS-Import zu Wallabag
Teil 7: Wallabag und eReader
Teil 8: Archivebox und Wallabag

  1. Bei Schwachsinns-Paywalls, die den Text im Browser via Javascript ver- und entwürfeln und stets die komplette Seite über die Leitung schicken, düfte das sogar funktionieren. So hat beispielsweise Laterpay bei spiegel.de vor einiger Zeit funktioniert, bis es dort rausgeschmissen wurde. Damals habe ich einen Artikel geschrieben, der die Paywall mit einem Bookmarklet aufgehebelt hat.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.