Skip to content

Latest commit

 

History

History
216 lines (150 loc) · 9.14 KB

File metadata and controls

216 lines (150 loc) · 9.14 KB

Websites selbst „aufschlüsseln“

Wie dieses Werkzeug entstanden ist — und wie Sie dasselbe für jede andere Website machen. Ohne Programmierkenntnisse. Sie brauchen nur einen Browser und eine KI wie GitHub Copilot CLI, Claude Code, ChatGPT Codex oder Cursor. Welche davon, ist gleichgültig — das Verfahren unten hängt an keinem bestimmten Werkzeug.

English version →


Die Grundidee in drei Sätzen

Fast jede moderne Website ist beim Laden leer. Erst danach holt sie ihre Inhalte über versteckte Datenadressen nach — Termine, Preise, Artikel, Programmpunkte.

Wenn man diese Adressen kennt, holt man sich die Daten direkt ab: vollständig, sauber strukturiert und in Sekunden, statt sie mühsam von der Bildschirmanzeige abzukratzen.

Diese Adressen zu finden ist keine Zauberei — die Website verrät sie selbst. Man muss nur wissen, wo man hinschaut.

Bild dazu: Die Website ist ein Kellner, der Ihnen das Essen an den Tisch bringt. Reverse Engineering heißt: herausfinden, wo die Küche ist — und dort direkt bestellen.


Vorher: Ist das erlaubt?

Kurz gesagt: Öffentliche Daten lesen ist in Ordnung. Alles andere nicht.

Diese drei Fragen ehrlich beantworten, bevor Sie anfangen:

1. Ist der Inhalt ohne Anmeldung sichtbar? Wenn Sie die Seite im privaten Browserfenster ohne Login sehen, ist der Inhalt öffentlich. Alles hinter einem Login ist tabu — auch wenn Sie einen Zugang haben. Ein Login zu umgehen ist eine andere Kategorie und hier nicht gemeint.

2. Belasten Sie den Server spürbar? Ein paar Anfragen für die eigene Vorbereitung sind wie ein normaler Seitenbesuch. Tausende Anfragen im Minutentakt sind es nicht. Bauen Sie kleine Pausen ein und holen Sie Daten nur, wenn Sie sie brauchen.

3. Was machen Sie mit den Daten? Für die eigene Arbeit auswerten: unproblematisch. Personenbezogene Daten sammeln, weiterverkaufen oder ein Konkurrenzangebot daraus bauen: lassen Sie das, oder fragen Sie vorher jemanden mit juristischem Sachverstand.

Zusätzlich: Viele Seiten haben eine Datei beispiel.de/robots.txt mit Hinweisen dazu, was automatisierte Zugriffe tun sollen. Ein Blick dorthin kostet nichts. Und wenn es eine offizielle Programmschnittstelle („API“) gibt — nehmen Sie die.


Der Ablauf in fünf Schritten

Genau so ist pag-extract entstanden.

Schritt 1 — Nachsehen, ob die Seite überhaupt leer ist

Öffnen Sie die Seite. Rechtsklick → „Seitenquelltext anzeigen“.

  • Sehen Sie dort die Inhalte, die Sie im Browser sehen (Titel, Termine, Texte)? → Die Seite liefert alles fertig aus. Der Weg unten ist trotzdem oft möglich, aber es geht auch einfacher.
  • Sehen Sie nur ein paar Zeilen mit <div id="app"> und <script src="...">? → Perfekt. Die Seite ist leer und holt ihre Daten nach. Weiter mit Schritt 2.

Bei unserer Kongressseite waren es 5 Kilobyte — kein einziger Programmpunkt darin. Das ganze Programm kam später über Datenadressen.

Schritt 2 — Der Küche beim Bestellen zusehen

Das ist der entscheidende Trick, und er ist in jedem Browser eingebaut.

  1. Auf der Seite F12 drücken (Mac: Cmd + Alt + I)
  2. Oben den Reiter „Netzwerk“ / „Network“ wählen
  3. Den Filter auf „Fetch/XHR“ stellen — das blendet Bilder und Design aus
  4. Die Seite neu laden (F5)

Jetzt füllt sich eine Liste. Das sind die Bestellungen bei der Küche. Klicken Sie die Einträge an und schauen Sie in den Reiter „Antwort“ / „Response“: Wo strukturierte Daten auftauchen (viele geschweifte Klammern, Titel, Datumsangaben), haben Sie die richtige Adresse gefunden.

Bei uns waren es genau zwei interessante Adressen — eine mit den Kongresstagen, eine mit den Sessions je Raum.

Nicht auf Anhieb sichtbar? Klicken Sie auf der Seite herum: nächster Tag, anderer Filter, „mehr laden“. Jede Aktion löst neue Bestellungen aus, und genau die zeigen, wie man die Daten gezielt abfragt.

Schritt 3 — Alles kopieren, was Sie sehen

Rechtsklick auf einen interessanten Eintrag → „Kopieren“ → „als cURL kopieren“.

Was Sie damit in der Zwischenablage haben, ist der komplette Befehl, mit dem die Website ihre Daten holt — inklusive aller nötigen Kennungen. Sie müssen ihn nicht verstehen. Sie müssen ihn nur weitergeben.

Schritt 4 — Die KI übernehmen lassen

Starten Sie Ihre KI im gewünschten Ordner und geben Sie ihr den Auftrag. Jedes agentische Werkzeug kann das — es muss nur Befehle im Terminal ausführen dürfen (Copilot CLI, Claude Code, Codex und Cursor können das alle). Fertiger Text zum Kopieren steht weiter unten.

Die KI kann ab hier selbst weiterarbeiten: sie ruft die Adressen auf, erkennt die Struktur der Daten, findet heraus wie man blättert und wie man nach Datum filtert, und schreibt ein kleines Programm, das alles zusammenholt.

Schritt 5 — Nachprüfen, ob die Zahlen stimmen

Der wichtigste und meistübersprungene Schritt.

Vergleichen Sie das Ergebnis mit dem, was im Browser steht. Zählt die Website 54 Programmpunkte an einem Tag, und Ihr Ergebnis hat 54 — gut. Hat es 144 — dann fragen Sie nach, warum.

Bei uns war genau das der Fall. Die Erklärung: Die Website zählte die Industrie­symposien nicht mit, unsere Abfrage schon. Kein Fehler, sondern eine Einstellung — und daraus wurde die Option --no-sponsor.

Sagen Sie Ihrer KI ausdrücklich:

Vergleiche die Anzahl mit dem, was die Website selbst anzeigt. Wenn die Zahlen abweichen, finde heraus warum — rate nicht.


Der fertige Prompt

Kopieren, die markierten Stellen ersetzen, in Copilot CLI / Claude Code / Codex / Cursor einfügen — der Text ist bewusst werkzeugneutral formuliert:

Ich möchte die öffentlichen Inhalte dieser Website programmatisch auslesen:

    URL: <<HIER DIE ADRESSE EINFÜGEN>>
    Was ich brauche: <<z. B. alle Termine mit Titel, Uhrzeit, Ort und Referent>>

Wichtig: Es geht ausschließlich um öffentliche Inhalte, die ohne Anmeldung
sichtbar sind. Nichts hinter einem Login.

Bitte arbeite in dieser Reihenfolge:

1. Hole die Seite und prüfe, ob die Inhalte direkt im HTML stehen oder ob die
   Seite sie über Datenschnittstellen nachlädt.
2. Wenn nachgeladen wird: Finde die Schnittstellen. Sieh dir dafür die
   JavaScript-Dateien der Seite an und suche nach Adressen, Basis-URLs und
   Konfigurationswerten.
3. Prüfe jede gefundene Adresse mit curl von der Kommandozeile aus — ohne
   Browser und ohne Cookies. Zeig mir echte Antworten, keine Vermutungen.
4. Finde heraus, ob es einen Endpunkt gibt, der IDs oder Kennungen liefert,
   damit nichts fest verdrahtet werden muss.
5. Erkläre mir die Datenstruktur: welche Felder gibt es, was bedeuten sie.
6. Schreib ein einzelnes, abhängigkeitsfreies Skript, das die Daten holt und
   als Markdown, CSV und JSON ausgeben kann.
7. Prüfe zum Schluss, ob die Anzahl der Datensätze mit dem übereinstimmt, was
   die Website selbst anzeigt. Bei Abweichung: finde die Ursache, rate nicht.

Wenn du bei Schritt 2 nicht weiterkommst, sag es mir — dann liefere ich dir
den Netzwerk-Mitschnitt aus den Entwicklertools nach.

Wenn Sie Schritt 3 der Anleitung schon gemacht haben, hängen Sie einfach an:

Hier ist der kopierte cURL-Befehl aus den Entwicklertools:

<<HIER EINFÜGEN>>

Damit überspringt die KI die halbe Suche.


Was Sie beim Ergebnis prüfen sollten

Bevor Sie sich auf die Daten verlassen:

  • Stimmen die Zahlen mit der Website überein? (siehe Schritt 5)
  • Fehlt etwas am Rand? Erster und letzter Tag, erster und letzter Eintrag — dort verstecken sich Abschneidefehler.
  • Wird geblättert? Viele Schnittstellen liefern nur 20 oder 100 Einträge auf einmal. Wenn Ihr Ergebnis genau 20 oder genau 100 Einträge hat, ist das ein Warnzeichen: es fehlt vermutlich der Rest.
  • Stichprobe: Suchen Sie sich drei Einträge im Browser und prüfen Sie sie in Ihrer Datei nach.

Wenn es nicht funktioniert

Situation Was zu tun ist
Im Netzwerk-Reiter erscheint nichts Die Seite liefert alles fertig aus. Sagen Sie der KI: „Die Inhalte stehen direkt im HTML, bitte lies sie von dort.“
Antwort 401 oder 403 Es fehlt eine Kennung. Der kopierte cURL-Befehl aus Schritt 3 enthält sie — geben Sie ihn der KI.
Antwort 429 Zu viele Anfragen zu schnell. Pausen einbauen, langsamer abfragen.
Es erscheint eine Sicherheitsabfrage / Captcha Die Seite möchte ausdrücklich keinen automatisierten Zugriff. Hier ist Schluss — respektieren Sie das.
Die Daten sind unverständlich verschlüsselt Aufwand und Nutzen abwägen. Meist gibt es einen leichteren Weg — oder eine offizielle Schnittstelle.

Das Muster dahinter

Was hier am Kongressprogramm gezeigt wurde, funktioniert genauso bei Veranstaltungskalendern, Stellenbörsen, Fahrplänen, Produktkatalogen, Vereinsseiten oder Behördenportalen. Die Technik dahinter ist fast überall dieselbe.

Der eigentliche Trick ist nicht technisch. Er besteht darin, die richtige Frage zu stellen: nicht „wie kopiere ich diese Seite ab?“, sondern „woher holt diese Seite eigentlich ihre Daten?“

Der Rest ist Fleißarbeit — und die kann die KI übernehmen.