Aller au contenu

Outil de Web Scraping

La base de connaissances Gezondland contient des articles originellement publies sur d’autres sites web. Pour migrer ce contenu vers notre plateforme Astro/Starlight, nous avons developpe un outil special qui convertit les pages web en fichiers Markdown propres.

L’outil de web scraping recupere les articles de sites externes et les convertit en Markdown avec le frontmatter correct pour Starlight. L’outil :

  • Detecte automatiquement le CMS du site source
  • Extrait le contenu de l’article sans navigation, footers et publicites
  • Conserve tous les hyperliens de l’article original
  • Ajoute la mention de source avec lien vers l’original
  • Nettoie les residus techniques generes par les systemes CMS

L’outil reconnait et traite le contenu de differents types de sites :

WordPress est le CMS le plus utilise au monde. L’outil detecte si un site a l’API REST WordPress disponible et l’utilise de preference. Via l’API, nous avons acces au contenu brut sans artefacts de formatage.

Sites reconnus : jeleefstijlalsmedicijn.nl, 2diabeat.nl, et autres installations WordPress avec API ouverte.

Detection : L’outil cherche le point de terminaison standard /wp-json/wp/v2/ ou le lien API dans le HTML.

Drupal est populaire aupres des sites medicaux et gouvernementaux en raison de sa structure robuste. L’outil reconnait Drupal par des classes CSS specifiques et extrait le contenu de la structure des champs.

Sites reconnus : thuisarts.nl (NHG)

Detection : Presence de classes field--name-body et balisage specifique a Drupal.

Les solutions CMS headless modernes comme Storyblok utilisent souvent SvelteKit comme frontend. L’outil reconnait les marqueurs HTML caracteristiques que ces frameworks utilisent.

Sites reconnus : voedingleeft.nl

Detection : Blocs de commentaires HTML_TAG_START et HTML_TAG_END dans le code source.

Pour les sites qui ne rentrent pas dans les categories ci-dessus, l’outil a des strategies de repli. Celles-ci recherchent des patterns courants comme les balises <article>, les classes .prose, ou les divs .entry-content.

Chaque article migre recoit automatiquement une mention de source en haut du contenu. C’est une citation en bloc avec :

  • Source : Le nom du site avec lien vers l’article original
  • Auteur : Si disponible dans la page source

Cela garantit la transparence sur l’origine du contenu et respecte la propriete intellectuelle des auteurs originaux.

Tous les hyperliens de l’article original sont conserves. Cela s’applique a :

  • Les liens internes dans l’article source
  • Les liens externes vers des sources scientifiques
  • Les liens vers des articles connexes

Les liens ne sont pas modifies ni supprimes, afin que les lecteurs conservent l’acces au contexte complet et aux sources.

Les sites utilisent souvent des systemes de formatage complexes qui laissent des “residus” dans le HTML. L’outil nettoie cela automatiquement :

  • Marqueurs de blocs Kadence et classes de style
  • Composants de boites d’information et decorations de liens
  • Attributs de blocs Gutenberg
  • Attributs target et rel des liens (comme target="_blank")
  • Images inline encodees en base64
  • Elements d’interface de lecteur video
  • Lignes vides et espaces excessifs
  • Attributs d’entite Drupal
  • Les attributs Markdown etendus comme {.button .primary} sont supprimes
  • Cela previent les erreurs d’analyse dans le traitement MDX d’Astro

L’outil genere automatiquement le frontmatter obligatoire pour Starlight :

  • title : Repris de la balise <title> ou des metadonnees Open Graph
  • description : De la meta description, ou un repli genere automatiquement

Cela garantit que les articles migres sont immediatement compatibles avec notre site sans ajustements manuels.

La migration d’un article se deroule comme suit :

  1. Saisir l’URL - L’outil recoit l’URL de l’article a migrer
  2. Detection du CMS - Reconnaissance automatique de la plateforme
  3. Extraction du contenu - Recuperation du contenu de l’article via la meilleure methode disponible
  4. HTML vers Markdown - Conversion via Pandoc vers du Markdown propre
  5. Nettoyage - Suppression des artefacts specifiques au CMS
  6. Ajout du frontmatter - Titre et description depuis les metadonnees
  7. Insertion de la mention de source - Attribution automatique a la source originale
  8. Sauvegarde - Output en fichier .mdx pret pour la base de connaissances

En plus des pages web, les documents PDF peuvent aussi etre convertis en Markdown. C’est pratique pour les fiches, guides et autres documents disponibles en PDF.

  • PDF bases sur le texte (texte directement copiable)
  • PDF avec tableaux et listes
  • Plusieurs pages
  1. Telecharger le PDF - Mettez le PDF dans le dossier Telechargements ou indiquez le chemin
  2. Extraction du contenu - Le skill PDF lit le contenu textuel
  3. Preservation de la structure - Titres, listes et paragraphes sont reconnus
  4. Generation du Markdown - Output vers .mdx avec le frontmatter correct
  5. Ajout des infos auteur - Pour les fiches, les informations de l’auteur sont automatiquement ajoutees

Apres la creation d’un nouvel article, il est publie via Git :

git add → git commit → git push → En ligne sur docs.gezondland.org

Le site est automatiquement construit et deploye apres chaque push vers la branche master.

RubriqueDossier
Affectionssrc/content/docs/aandoeningen/
Pour commencersrc/content/docs/aan-de-slag/
Alimentationsrc/content/docs/voeding/
Fiches Yvo Sijpkenssrc/content/docs/fiches-yvo-sijpkens/
Classificationsrc/content/docs/classificatie/

L’URL suit la structure des dossiers : docs.gezondland.org/{rubrique}/{nom-fichier}/

Par exemple : src/content/docs/fiches-yvo-sijpkens/pcos.mdx devient docs.gezondland.org/fiches-yvo-sijpkens/pcos/

L’outil a quelques limitations :

  • Les images ne sont pas automatiquement telechargees. Elles doivent etre recuperees separement et hebergees localement.
  • Les videos integrees ne sont pas incluses. Seul le contenu textuel est extrait.
  • Le contenu dynamique charge via JavaScript n’est pas toujours accessible.
  • Le contenu payant derriere une connexion ne peut pas etre recupere.
  • Les PDF scannes (images de texte) necessitent l’OCR et ne sont pas toujours correctement reconnus.

L’outil est disponible comme skill Claude Code et peut etre appele pendant une session.

Donnez l’URL de l’article et la rubrique souhaitee. L’outil determine lui-meme la meilleure methode d’extraction.

Mettez le PDF dans Telechargements et indiquez le nom du fichier et la rubrique cible. L’outil lit le PDF et genere un fichier Markdown.

Pour les questions sur la migration de contenu specifique ou les sites qui ne sont pas correctement reconnus, l’outil peut etre etendu avec de nouveaux patterns d’extraction.

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.