iToverDose/Software· 3 JUNI 2026 · 04:03

Dynamische Web-Scraper: Blog-Inhalte ohne domain-spezifischen Code extrahieren

Wie ein Open-Source-Tool namens pluckmd Blog-Artikel in Echtzeit extrahiert – ganz ohne manuelle Anpassungen für jede Webseite. Eine clevere Lösung für KI-Agenten, die Wissen automatisiert verarbeiten.

DEV Community4 min0 Kommentare

In der Welt der Web-Scraper gibt es einen weit verbreiteten Ansatz: Für jede Zielseite wird ein maßgeschneiderter Extraktionscode geschrieben. Doch was wäre, wenn ein Tool Blog-Inhalte, Tutorials oder Nachrichtenartikel universell auslesen könnte – ohne dass Entwickler:innen für jede Domain einen Handler programmieren müssen? Genau hier setzt pluckmd an. Das Open-Source-Tool nutzt eine intelligente, datengetriebene Methode, um Inhalte zu extrahieren, und setzt dabei auf Heuristiken, LLM-Unterstützung und eine klare Validierungslogik.

Das Prinzip: Extraktion als Datenobjekt statt hartcodierter Logik

Anstatt den Code basierend auf der Domain zu verzweigen (z. B. ein spezieller Parser für Medium, ein anderer für Substack), nutzt pluckmd ein `AdapterSpec`-Objekt. Dieses beschreibt in einer standardisierten Struktur, wie Artikel-Links gefunden, Inhalte extrahiert und Paginierung gehandhabt werden sollen. Das Besondere: Die Spezifikation ist rein datenbasiert und kann von Menschen, Heuristiken oder sogar KI-Modellen generiert werden.

interface AdapterSpec {
  listing: ListingExtractionSpec;    // Regeln für die Link-Extraktion
  article: ArticleExtractionSpec;     // Regeln für den Artikel-Inhalt
  pagination: PaginationSpec;         // Paginierungslogik (z. B. Scrollen, Next-Button, Auto-Detection)
  evidence: string;                   // Begründung für die erkannte Struktur
}

Durch diese Abstraktion bleibt das System vollständig austauschbar. Egal, ob die Spezifikation manuell eingegeben, von einem Algorithmus errechnet oder von einem LLM generiert wird – das Tool verarbeitet sie immer auf die gleiche Weise.

Schrittweise Auflösung: Von Cache bis KI – aber möglichst ohne LLM

pluckmd verfolgt eine klare Prioritätenreihenfolge, um die LLM-Nutzung zu minimieren:

  1. Cache-Prüfung: Zuerst wird geprüft, ob bereits eine gültige Spezifikation für die Domain im Cache liegt. Diese wird gegen die aktuelle HTML-Struktur verifiziert, um veraltete Einträge auszuschließen.
  2. Lokale Heuristiken: Falls kein Cache-Eintrag vorhanden ist, kommen algorithmische Regeln zum Einsatz. Diese analysieren die Seitenstruktur ohne domänenspezifisches Vorwissen.
  3. LLM-Unterstützung: Erst wenn die Heuristiken keine klare Lösung finden, greift das Tool auf ein Sprachmodell zurück. Jede funktionierende Spezifikation wird anschließend im Cache gespeichert – für zukünftige Anfragen.

Diese Strategie spart Kosten und Rechenleistung, da LLM-Aufrufe nur in Ausnahmefällen nötig sind. Gleichzeitig wird sichergestellt, dass keine ungültigen Daten in den Cache gelangen.

Wie Heuristiken Artikel-Listen automatisch erkennen

Ein zentraler Baustein von pluckmd ist die automatische Erkennung von Artikel-Listen – und das funktioniert ohne Wissen über die Domain. Das Tool geht wie folgt vor:

  • Normalisierung der Links: Pfade wie /blog/mein-artikel-2024 oder /tutorials/python-tutorial werden in Wildcard-Muster umgewandelt, z. B. /blog/* oder /tutorials/*.
  • Gruppierung nach Mustern: Links mit ähnlichen Mustern werden zusammengefasst. Eine Gruppe mit mindestens drei Links desselben Musters gilt als Kandidat für eine Artikel-Liste.
  • Scoringsystem: Die Qualität einer Gruppe wird anhand mehrerer Faktoren bewertet:
  • Anzahl der Links in der Gruppe
  • Anteil der Links im Verhältnis zur Gesamtzahl der Links auf der Seite
  • Tiefe des Pfads (z. B. /blog/2024/04/artikel vs. /artikel)
  • Position im HTML-Baum (z. B. innerhalb eines <main>-Elements)

Durch diese strukturanalytische Herangehensweise werden selbst dynamische Seiten wie WordPress-Blogs oder statische Site-Generator-Websites zuverlässig erkannt – ohne dass Entwickler:innen manuell eingreifen müssen.

Sicherheit durch Validierung: Nur vertrauenswürdige Daten nutzen

Bevor eine Spezifikation akzeptiert oder im Cache gespeichert wird, durchläuft sie eine mehrstufige Validierung:

  1. Mindestanzahl an Links: Die gefundenen Links müssen mindestens dreimal vorkommen.
  2. URL-Muster-Übereinstimmung: Mindestens 50 % der Links müssen dem vorhergesagten URL-Muster entsprechen.
  3. Inhaltsvalidierung: Falls der Artikel-Inhalt über einen CSS-Selektor extrahiert wird, muss der Text mindestens 80 Zeichen umfassen.

Erst wenn alle Kriterien erfüllt sind, wird die Spezifikation als gültig markiert. Fällt ein Test durch, wird die gesamte Extraktion verworfen – ein wichtiger Schutzmechanismus, um fehlerhafte oder manipulierte Daten auszuschließen.

Flexible Backends: Vom statischen Fetch bis zur interaktiven Session

pluckmd unterstützt drei verschiedene Backends, um Webseiten abzurufen:

  • Statischer Fetch (z. B. über curl oder fetch)
  • Headless-Browser (z. B. Playwright)
  • Manuelle Chrome-Session (für Seiten mit JavaScript-Rendering oder Login-Pflicht)

Ein entscheidender Vorteil: Die Extraktionslogik bleibt von der Quelle entkoppelt. Ob eine Seite statisch geladen oder dynamisch gerendert wird – die AdapterSpec bleibt identisch. Neue Backends lassen sich einfach hinzufügen, indem eine neue Backend-Klasse implementiert wird, die eine gemeinsame Schnittstelle erfüllt.

Der Agent als Backup: Wenn Heuristiken scheitern

Falls die automatischen Heuristiken keine Lösung finden und kein LLM konfiguriert ist, fällt pluckmd nicht in einen Fehlerzustand. Stattdessen:

  1. Es generiert eine Strukturbeschreibung der Seite inklusive potenzieller CSS-Selektoren.
  2. Diese wird als Request-Datei gespeichert.
  3. Ein externer KI-Agent (z. B. ein Coding-Assistent) kann die Datei auslesen und eine passende AdapterSpec erstellen.
  4. Die Lösung wird validiert, akzeptiert und im Cache gespeichert.

Auf diese Weise lassen sich auch komplexe Seiten wie login-pflichtige Portale oder Single-Page-Applikationen (SPAs) erschließen – ohne dass das pluckmd-Team manuell eingreifen muss.

Fazit: Ein universeller Ansatz für Web-Extraktion

pluckmd demonstriert, wie Web-Scraping durch Datenabstraktion und modulare Architekturen deutlich vereinfacht werden kann. Statt für jede neue Domain einen eigenen Parser zu schreiben, reicht eine einzige AdapterSpec, die von Heuristiken, LLMs oder sogar menschlichen Entwickler:innen stammen kann. Die klare Trennung zwischen Extraktion, Validierung und Backend-Logik macht das Tool zu einer robusten Lösung – besonders für KI-Agenten, die Wissen aus dem Web automatisiert verarbeiten müssen.

Wer ähnliche Ansätze verfolgt oder eigene Erfahrungen mit generischer Web-Extraktion hat, kann sich gerne in der Diskussion austauschen. Ein besonders spannender Aspekt bleibt die Abwägung zwischen Vertrauen in Heuristiken und dem Einsatz von Sprachmodellen – eine Frage, die in zukünftigen Versionen noch weiter optimiert werden könnte.

KI-Zusammenfassung

Tek bir JSON yapısıyla tüm web sitelerinden içerik çıkarmak mümkün. pluckmd’nin nasıl çalıştığını ve kod yerine veri odaklı yaklaşımların avantajlarını keşfedin.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #HL6IT3

0 / 1200 ZEICHEN

Menschen-Check

7 + 4 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.