← Zurück zum Blog
pullmdweb-scrapingclaude-code8. März 2026 · 6 Min. Lesezeit

PullMD Teil 1: Strg+A und der Junk-Kontext – Einfach erklärt

RAW INPUT → PARSE & FILTER → MARKDOWNKI-generiertes Bild
Editorial-Diagramm: eine hohe Konsole mit der Aufschrift PARSE & FILTER zwischen einem unruhigen Reddit-artigen Input-Panel links und einem aufgeräumten Markdown-Output-Panel rechts; unten die Parser-Pipeline mit strukturierten Daten.Editorial-Diagramm: eine hohe Konsole mit der Aufschrift PARSE & FILTER zwischen einem unruhigen Reddit-artigen Input-Panel links und einem aufgeräumten Markdown-Output-Panel rechts; unten die Parser-Pipeline mit strukturierten Daten.

Ich sitze vor einem langen Forenbeitrag im Internet. Jemand beschreibt dort ziemlich genau das Problem, an dem ich gerade arbeite. Also mache ich, was ich immer mache: Strg+A (alles markieren), Strg+C (kopieren), ab in den Chat mit einem KI-Chatbot.

Am Handy ist es noch umständlicher. Alles markieren, kopieren, einfügen. „Mit Claude teilen“ funktioniert bei Reddit ja nicht, weil Reddit KI-Dienste blockiert.

Das Ergebnis ist meistens brauchbar. Der Weg dahin ist trotzdem ziemlich bescheuert.

Zwei Wege, dasselbe Problem

Es gibt eigentlich zwei verschiedene Situationen, in denen es schiefgeht. Die sehen auf den ersten Blick ähnlich aus, sind aber nicht dasselbe.

Einen Link teilen. Gibt man dem Chatbot einfach den Link zu einer Webseite, muss er sich erst durch den ganzen Seitenaufbau kämpfen: Menüleiste, Cookie-Banner, Werbung, Empfehlungen und sonstigen Seitenmüll. Der eigentliche Beitrag steckt irgendwo dazwischen.

Selbst kopieren und einfügen. Und auch von dem Text, den man selbst markiert und einfügt, besteht oft ein großer Teil aus genau diesem Zeug. Strg+A heißt halt wirklich alles. Nicht nur den Beitrag, sondern auch die ganze Verpackung drumherum.

In beiden Fällen muss der Chatbot erst jede Menge Irrelevantes verarbeiten, bevor er bei dem ankommt, worum es eigentlich geht.

Man kann sich das vorstellen wie einen Schreibtisch mit begrenzter Fläche. Wenn die Hälfte schon mit Werbe-Flyern belegt ist, bleibt für das eigentliche Anliegen nur wenig Platz. Und jeder dieser Flyer kostet Rechenarbeit und Zeit, völlig umsonst.

Das kostet sogenannte Tokens. Tokens sind die Bausteine, in die ein Sprachmodell Text zerlegt, ein bisschen wie Silben, aber nicht ganz. Je mehr Tokens für Müll draufgehen, desto weniger bleiben für den eigentlichen Inhalt.

Natürlich ist das keine bahnbrechende Erkenntnis. Mich hat nur irgendwann genervt, dass ich dieselben unnötigen Handgriffe ständig wiederhole. Und irgendwann war es einmal zu viel.

Die kurze Hoffnung: Cloudflare

Cloudflare – eine große Firma, die einen Großteil des Internets im Hintergrund mit am Laufen hält – hat vor kurzem einen Dienst vorgestellt: Internetadresse rein, sauberer Text raus. Ohne Menüleiste, ohne Werbung, ohne Cookie-Banner.

Ich habe das natürlich direkt ausprobiert. Ein paar Wikipedia-Artikel, ein Tech-Blog. Das Ergebnis sah wirklich gut aus.

Technisch funktioniert das so, dass man der Webseite beim Abrufen einen kleinen Hinweis mitschickt. Quasi: „Ach übrigens, ich nehme auch Markdown, wenn du welches hast.“ Markdown ist ein einfaches Textformat – Text mit Struktur, aber ohne Schnickschnack.

Der Befehl dafür sieht so aus:

curl "https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/" \
  -H "Accept: text/markdown"

(Das ist ein Kommandozeilen-Befehl. Er ruft eine Webseite ab und sagt dabei: „Gib mir bitte die Markdown-Version, falls du eine hast.“)

Der Haken: Das funktioniert nur bei Webseiten, die den Dienst aktiv unterstützen. Bei Reddit funktioniert es nicht. Bei vielen Seiten, über die man so täglich stolpert, ebenfalls nicht.

Ein Werkzeug, das ausgerechnet bei einem großen Teil der Seiten nicht funktioniert, die ich tatsächlich brauche, löst mein Problem nicht. Es macht es nur an einigen Stellen etwas kleiner.

Selbst bauen, aber erst mal klein

Wenn es nichts Fertiges gibt, das zuverlässig funktioniert, baue ich es eben selbst. Nicht gleich für das halbe Internet, sondern erst einmal nur für Reddit. Dort nervt es mich am häufigsten.

Und es gibt einen angenehm einfachen Einstieg: Hängt man an eine Reddit-Adresse .json an, liefert Reddit die Rohdaten des Beitrags und der Kommentare zurück. Ohne Anmeldung, ohne Registrierung, ohne Genehmigung. Das funktioniert seit Jahren.

Auf dem Handy sollte der Dienst als PWA (Progressive Web App – eine Webseite, die sich auf dem Handy verhält wie eine App) installierbar sein. Dann könnte ich in der Reddit-App einfach auf „Teilen“ drücken und den Link direkt an mein Werkzeug schicken.

Wie wenn man jemandem einen Link per WhatsApp schickt. Kein Markieren, kein Kopieren, kein extra Browser-Tab.

Bevor ich Code schreiben lasse, wollte ich das Konzept erst mal sauber durchdenken. Also mit Claude auf claude.ai darüber philosophieren, um Architektur und Anforderungen festzuschreiben. Danach sollte Claude Code mit einer möglichst vollständigen Spezifikation loslegen.

Der Konzept-Chat vom 2. März

Der Chat begann direkt mit einem Tippfehler meiner Autokorrektur am Smartphone.

Claude antwortete auf „Tresor Posts“:

Gute Idee, lass uns das durchdenken! Ich nehme an, „Tresor“ war Autokorrektur und du meinst Reddit Posts – richtig?

Das war ganz passend. Das Modell verstand trotz des Fehlers, was ich meinte, weil der restliche Kontext eindeutig war. Genau darum geht es eigentlich immer: dem Chatbot nicht einfach möglichst viel Text hinwerfen, sondern möglichst guten Kontext liefern.

Eine der ersten Fragen war, ob es einen oder zwei Zugangswege geben sollte:

  • Der eigentliche Kern ist ein HTTP-Endpoint – eine Adresse im Netz, an die man eine Anfrage schickt und eine Antwort bekommt. Den können Kommandozeilen-Werkzeuge, Claude Code oder andere Automatisierungen verwenden.
  • Darüber liegt eine kleine Weboberfläche als PWA. Die ist hauptsächlich für Android gedacht und nimmt Links über das Teilen-Menü entgegen.

Beide Wege landen beim selben Kern. Die Verarbeitung bleibt also identisch, nur die Art der Nutzung ist unterschiedlich.

Auf die offizielle Reddit-Schnittstelle wollten wir bewusst verzichten. Der Zugang ist inzwischen unnötig umständlich und für so einen kleinen Dienst auch gar nicht erforderlich.

Stattdessen entstand eine zweistufige Strategie:

  1. Zuerst der .json-Weg: an die Reddit-Adresse einfach .json anhängen und die Rohdaten direkt abholen.
  2. Falls Reddit das blockiert, als Ausweichweg: die alte Reddit-Oberfläche (old.reddit.com) abrufen und den Text dort herausfiltern.

Das alte Reddit lässt sich deutlich einfacher auslesen als die heutige Oberfläche. Vor allem braucht man dafür keinen automatisierten Browser im Hintergrund, der das ganze Projekt sofort schwerer gemacht hätte.

Verschachtelte Kommentare

Noch eine Entscheidung aus dem Chat, die unscheinbar klingt, aber tatsächlich wichtig ist.

Wenn in einem Forum jemand auf einen Kommentar antwortet, und auf diese Antwort antwortet wieder jemand, entsteht eine verschachtelte Gesprächs-Struktur. Wie ein Baum mit immer feineren Ästen.

In Textform kann man das mit immer längeren Pfeil-Ketten darstellen:

> > > > Antwort auf eine Antwort auf eine Antwort

Das ist spätestens beim Kopieren in einen Chat kaum noch vernünftig lesbar. Die bessere Alternative: jede Antwort rückt einfach ein Stück nach rechts ein. Mit normaler Einrückung bleibt die Struktur sichtbar, ohne dass der eigentliche Inhalt unter einer Wand aus >-Zeichen verschwindet.

Codename und Adresse

In diesem Chat entstand auch der erste Codename des Projekts. Unter diesem Namen habe ich die nächsten Wochen daran gebaut. Später musste er aus markenrechtlichen Gründen wieder verschwinden – dazu mehr in Teil 8.

Am Ende brauchte der Dienst noch eine eigene Adresse im Heimnetz. Mein Netzwerk folgt einem festen Namensschema, also habe ich Claude einfach gebeten, einen passenden Namen dafür auszuwählen.

Die Teilen-Funktion auf Android

Auf Android gibt es eine Funktion, über die sich eine installierte PWA im Teilen-Menü registrieren kann. Wenn man in der Reddit-App auf „Teilen“ drückt, taucht das eigene Werkzeug dann neben WhatsApp, Signal und den anderen Apps auf.

Wichtig ist dabei das Wort installiert. Es reicht nicht, die Seite nur im Browser zu öffnen. Die PWA muss über „App installieren“ oder „Zum Startbildschirm hinzufügen“ tatsächlich installiert werden. Außerdem muss sie über eine verschlüsselte Verbindung (HTTPS) erreichbar sein.

Ein kleiner Eintrag in den Einstellungen sagt dem Handy, was bei einem geteilten Link passieren soll. Teilt man dann einen Reddit-Link, öffnet sich die Oberfläche, und der Link ist schon da. Kein Tippen, kein Kopieren.

Die Spezifikation

Am Ende des Chats stand eine vollständige Spezifikation – quasi ein Bauplan:

  • Dateistruktur
  • Schnittstellen-Beschreibung mit Parametern und Rückgabeformaten
  • PWA-Einstellungen
  • Eine Konfigurationsdatei für die Server-Umgebung
  • Netzwerk-Einstellungen
  • Beispielausgabe mit eingerückten Kommentaren

Die offenen Fragen waren damit geklärt. Noch keine Zeile Code. Genau so war es gedacht.

Der Chat sollte das Projekt planen, nicht bereits nebenbei anfangen, halbfertige Dateien zu erzeugen. Das eigentliche Bauen sollte Claude Code übernehmen, mit der Spezifikation als Briefing.

Am selben Abend um 21:53 Uhr ging es los.


Teil 1 von 15 der PullMD Serie.

PullMD Teil 2: Vom Spec zum laufenden Container →

Kommentare

Zum Kommentieren genügt eine E-Mail-Bestätigung oder ein GitHub-Login. Die Kommentare laufen auf einem eigenen Server, nicht bei einem Werbeanbieter — Details in der Datenschutzerklärung.