Web-Scraping-Tool
Die Gezondland-Wissensdatenbank enthält Artikel, die ursprünglich auf anderen Websites veröffentlicht wurden. Um diese Inhalte auf unsere Astro/Starlight-Plattform zu migrieren, haben wir ein spezielles Tool entwickelt, das Webseiten in saubere Markdown-Dateien umwandelt.
Was macht das Tool?
Abschnitt betitelt „Was macht das Tool?“Das Web-Scraping-Tool ruft Artikel von externen Websites ab und konvertiert diese in Markdown mit dem richtigen Frontmatter für Starlight. Das Tool:
- Erkennt automatisch das CMS der Quellwebsite
- Extrahiert den Artikelinhalt ohne Navigation, Fußzeilen und Werbung
- Behält alle Hyperlinks aus dem Originalartikel bei
- Fügt Quellenangabe hinzu mit Link zum Original
- Räumt technischen Müll auf, der von CMS-Systemen generiert wird
Unterstützte Plattformen
Abschnitt betitelt „Unterstützte Plattformen“Das Tool erkennt und verarbeitet Inhalte von verschiedenen Website-Typen:
WordPress-Sites
Abschnitt betitelt „WordPress-Sites“WordPress ist das meistgenutzte CMS der Welt. Das Tool prüft, ob eine Site die WordPress-REST-API verfügbar hat, und nutzt diese bevorzugt. Über die API erhalten wir Zugang zum Rohinhalt ohne Formatierungsartefakte.
Erkannte Sites: jeleefstijlalsmedicijn.nl, 2diabeat.nl und andere WordPress-Installationen mit offener API.
Erkennung: Das Tool sucht nach dem Standard-Endpoint /wp-json/wp/v2/ oder dem API-Link im HTML.
Drupal-Sites
Abschnitt betitelt „Drupal-Sites“Drupal ist beliebt bei medizinischen und Regierungswebsites wegen der robusten Struktur. Das Tool erkennt Drupal an spezifischen CSS-Klassen und extrahiert Inhalte aus der Feldstruktur.
Erkannte Sites: thuisarts.nl (NHG)
Erkennung: Vorhandensein von field--name-body-Klassen und Drupal-spezifischem Markup.
Storyblok/SvelteKit-Sites
Abschnitt betitelt „Storyblok/SvelteKit-Sites“Moderne Headless-CMS-Lösungen wie Storyblok verwenden oft SvelteKit als Frontend. Das Tool erkennt die charakteristischen HTML-Marker, die diese Frameworks verwenden.
Erkannte Sites: voedingleeft.nl
Erkennung: HTML_TAG_START- und HTML_TAG_END-Kommentarblöcke im Quellcode.
Generisches HTML
Abschnitt betitelt „Generisches HTML“Für Websites, die nicht unter die obigen Kategorien fallen, hat das Tool Fallback-Strategien. Diese suchen nach häufigen Mustern wie <article>-Tags, .prose-Klassen oder .entry-content-Divs.
Automatische Quellenangabe
Abschnitt betitelt „Automatische Quellenangabe“Jeder migrierte Artikel erhält automatisch eine Quellenangabe am Anfang des Inhalts. Dies ist ein Blockquote mit:
- Quelle: Der Name der Website mit Link zum Originalartikel
- Autor: Falls im Quellartikel verfügbar
Dies gewährleistet Transparenz über die Herkunft des Inhalts und respektiert das geistige Eigentum der ursprünglichen Autoren.
Link-Erhaltung
Abschnitt betitelt „Link-Erhaltung“Alle Hyperlinks aus dem Originalartikel bleiben erhalten. Dies gilt für:
- Interne Links innerhalb des Quellartikels
- Externe Links zu wissenschaftlichen Quellen
- Links zu verwandten Artikeln
Die Links werden nicht angepasst oder entfernt, sodass Leser Zugang zum vollständigen Kontext und den Quellen behalten.
Automatische Bereinigung
Abschnitt betitelt „Automatische Bereinigung“Websites verwenden oft komplexe Formatierungssysteme, die “Müll” im HTML hinterlassen. Das Tool räumt dies automatisch auf:
WordPress/Gutenberg
Abschnitt betitelt „WordPress/Gutenberg“- Kadence-Block-Marker und Styling-Klassen
- Info-Box-Komponenten und Link-Dekorationen
- Gutenberg-Block-Attribute
Allgemeine Bereinigung
Abschnitt betitelt „Allgemeine Bereinigung“- Target- und rel-Attribute von Links (wie
target="_blank") - Base64-kodierte Inline-Bilder
- Video-Player-Interface-Elemente
- Überflüssige Leerzeilen und Leerzeichen
- Drupal-Entity-Attribute
MDX-Kompatibilität
Abschnitt betitelt „MDX-Kompatibilität“- Extended Markdown-Attribute wie
{.button .primary}werden entfernt - Dies verhindert Parse-Fehler in Astros MDX-Verarbeitung
Frontmatter-Generierung
Abschnitt betitelt „Frontmatter-Generierung“Das Tool generiert automatisch das erforderliche Frontmatter für Starlight:
- title: Übernommen vom
<title>-Tag oder Open Graph-Metadaten - description: Von der Meta-Description oder einem automatisch generierten Fallback
Dies stellt sicher, dass migrierte Artikel direkt kompatibel mit unserer Site sind, ohne manuelle Anpassungen.
Workflow
Abschnitt betitelt „Workflow“Die Migration eines Artikels verläuft wie folgt:
- URL eingeben - Das Tool erhält die URL des zu migrierenden Artikels
- CMS-Erkennung - Automatische Erkennung der Plattform
- Inhaltsextraktion - Abrufen des Artikelinhalts über die beste verfügbare Methode
- HTML nach Markdown - Konvertierung über Pandoc zu sauberem Markdown
- Bereinigung - Entfernen von CMS-spezifischen Artefakten
- Frontmatter hinzufügen - Titel und Beschreibung aus Metadaten
- Quellenangabe einfügen - Automatische Attribution zur Originalquelle
- Speichern - Ausgabe als
.mdx-Datei, bereit für die Wissensdatenbank
PDF nach Markdown
Abschnitt betitelt „PDF nach Markdown“Neben Webseiten können auch PDF-Dokumente in Markdown konvertiert werden. Dies ist praktisch für Merkblätter, Anleitungen und andere Dokumente, die als PDF verfügbar sind.
Unterstützte PDF-Typen
Abschnitt betitelt „Unterstützte PDF-Typen“- Textbasierte PDFs (direkt kopierbare Text)
- PDFs mit Tabellen und Listen
- Mehrere Seiten
PDF-Workflow
Abschnitt betitelt „PDF-Workflow“- PDF hochladen - Legen Sie die PDF in den Downloads-Ordner oder geben Sie den Pfad an
- Inhaltsextraktion - Die PDF-Skill liest den Textinhalt
- Struktur beibehalten - Überschriften, Listen und Absätze werden erkannt
- Markdown-Generierung - Ausgabe als
.mdxmit korrektem Frontmatter - Autoreninfo hinzufügen - Bei Merkblättern werden automatisch Autoreninformationen hinzugefügt
Veröffentlichung
Abschnitt betitelt „Veröffentlichung“Nach dem Erstellen eines neuen Artikels wird er über Git veröffentlicht:
Automatisches Deployment
Abschnitt betitelt „Automatisches Deployment“git add → git commit → git push → Live auf docs.gezondland.orgDie Site wird automatisch gebaut und deployed nach jedem Push zum master-Branch.
Dateispeicherorte
Abschnitt betitelt „Dateispeicherorte“| Rubrik | Ordner |
|---|---|
| Erkrankungen | src/content/docs/aandoeningen/ |
| Loslegen | src/content/docs/aan-de-slag/ |
| Ernährung | src/content/docs/voeding/ |
| Merkblätter Yvo Sijpkens | src/content/docs/fiches-yvo-sijpkens/ |
| Klassifikation | src/content/docs/classificatie/ |
URL-Struktur
Abschnitt betitelt „URL-Struktur“Die URL folgt der Ordnerstruktur: docs.gezondland.org/{rubrik}/{dateiname}/
Zum Beispiel: src/content/docs/fiches-yvo-sijpkens/pcos.mdx wird docs.gezondland.org/fiches-yvo-sijpkens/pcos/
Einschränkungen
Abschnitt betitelt „Einschränkungen“Das Tool hat einige Einschränkungen:
- Bilder werden nicht automatisch heruntergeladen. Diese müssen separat abgerufen und lokal gehostet werden.
- Eingebettete Videos werden nicht übernommen. Nur der textuelle Inhalt wird extrahiert.
- Dynamischer Inhalt, der über JavaScript geladen wird, ist nicht immer zugänglich.
- Bezahlinhalt hinter einem Login kann nicht abgerufen werden.
- Gescannte PDFs (Bilder von Text) erfordern OCR und werden nicht immer korrekt erkannt.
Verwendung
Abschnitt betitelt „Verwendung“Das Tool ist als Claude Code Skill verfügbar und kann während einer Sitzung aufgerufen werden.
Webartikel migrieren
Abschnitt betitelt „Webartikel migrieren“Geben Sie die URL des Artikels und die gewünschte Rubrik an. Das Tool bestimmt selbst die beste Extraktionsmethode.
PDF konvertieren
Abschnitt betitelt „PDF konvertieren“Legen Sie die PDF in Downloads und geben Sie den Dateinamen und die Zielrubrik an. Das Tool liest die PDF und generiert eine Markdown-Datei.
Bei Fragen zur Migration spezifischer Inhalte oder Websites, die nicht korrekt erkannt werden, kann das Tool mit neuen Extraktionsmustern erweitert werden.
Medische Disclaimer: De informatie van Stichting Je Leefstijl Als Medicijn over leefstijl, ziektes en stoornissen mag niet worden opgevat als medisch advies. In geen geval adviseren wij mensen om hun bestaande behandeling te veranderen. We raden mensen met chronische aandoeningen aan om zich over hun behandeling goed door bevoegde medische professionals te laten adviseren.
Medical Disclaimer: The information provided by Stichting Je Leefstijl Als Medicijn regarding lifestyle, diseases, and disorders should not be construed as medical advice. Under no circumstances do we advise people to alter their existing treatment. We recommend that people with chronic conditions seek advice regarding their treatment from qualified medical professionals.