Si vous avez déjà transmis directement une page web scrapée à un modèle de langage, vous connaissez déjà le problème : la page est principalement du bruit. Menus de navigation, bannières de cookies, scripts inline, pixels de tracking et wrappers de mise en page sont tous transmis au modèle en même temps que les quelques paragraphes qui vous intéressent réellement. Le modèle brûle des tokens à lire du balisage qu'il n'utilisera jamais, et le surplus de bruit rend la récupération et les résumés moins fiables.
Ce guide montre un chemin plus propre. La Crawling API peut retourner une page sous forme de Markdown ordonné plutôt que de HTML brut, ce qui vous permet de donner à votre modèle du texte lisible plutôt qu'une soupe de balises. Nous verrons comment demander une sortie en Markdown, pourquoi le Markdown surpasse le HTML pour les budgets de tokens des LLM et des pipelines RAG, ainsi qu'un petit pipeline de bout en bout : récupérer du Markdown, le découper, puis l'embarquer ou l'injecter dans un prompt. La phrase à garder en tête tout au long est le scraping web en Markdown prêt pour les LLM, car le format de sortie est ce qui facilite le reste de votre pipeline.
Pourquoi le Markdown surpasse le HTML brut pour les LLM
Le HTML a été conçu pour rendre des pages dans un navigateur. Il transporte tout ce dont un moteur de mise en page a besoin : des divs imbriqués, des noms de classes, des styles inline, des scripts et des attributs ARIA. Un modèle n'a presque besoin d'aucun de cela. Lorsque du HTML brut entre dans un flux de travail LLM, le modèle doit traverser le balisage et le contenu générique avant d'atteindre le vrai contenu, ce qui a des coûts réels.
Le Markdown conserve la structure qui compte et supprime le reste. Les titres restent des titres, les listes restent des listes, les tableaux restent lisibles, et les liens restent utiles sans être noyés dans des attributs. Les gains pratiques s'alignent clairement :
- Budget de tokens. Une page d'article typique peut être plusieurs fois plus grande en HTML brut qu'en son équivalent Markdown une fois les menus, scripts et wrappers supprimés. Moins de tokens signifie un coût inférieur par appel et plus de place pour le contexte réel dans la fenêtre du modèle.
-
Précision. Un modèle lisant de la prose propre est moins susceptible de s'accrocher à une étiquette de navigation parasite ou à une chaîne de consentement aux cookies que l'un parsant un mur de
divs. Moins de bruit en entrée, moins de mauvaises conclusions en sortie. -
Découpage. Les titres Markdown vous donnent des points de division naturels. Vous pouvez découper sur les limites
##et garder le texte sémantiquement lié ensemble au lieu de trancher au milieu d'une phrase à un nombre de caractères arbitraire. - Inspectabilité. Lorsque quelque chose se passe mal en aval, vous pouvez ouvrir un fichier Markdown et le lire. Déboguer un blob HTML de 200 Ko est une autre sorte d'après-midi.
Pour les équipes qui font du scraping web pour l'IA, le format de sortie n'est pas un détail mineur. Il fixe le plafond de qualité pour tout ce qui se passe après la récupération. Pour une vue plus large sur la façon dont le nettoyage façonne les résultats des modèles, voir comment structurer et nettoyer les données web scrapées pour l'IA et le ML.
Comment demander du Markdown à la Crawling API
Crawlbase retourne du Markdown nativement. Vous n'ajoutez pas de convertisseur HTML vers Markdown séparé ; vous demandez à la Crawling API du Markdown et elle effectue la conversion côté serveur dans le cadre du crawl.
Le contrôle se résume à un seul paramètre. Ajoutez format=md à votre requête et l'API retourne du Markdown plutôt que du HTML.
curl "https://api.crawlbase.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fexample.com&format=md"
Si vous souhaitez uniquement le contenu principal lisible, ajoutez md_readability=true. Cela exécute l'extraction de lisibilité avant la conversion, en supprimant les menus, barres latérales et bruits de pied de page, de sorte que le Markdown contient principalement le corps de l'article.
curl "https://api.crawlbase.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fexample.com&format=md&md_readability=true"
Les deux modes ont leur place. Le simple format=md préserve le contexte plus large de la page comme la navigation et les liens connexes, ce qui est utile lorsque vous cartographiez la structure d'un site. Ajouter md_readability=true vous donne l'extraction du contenu principal, ce que vous voulez pour les embeddings, la synthèse et le RAG. Si votre objectif est d'alimenter un modèle, commencez avec la lisibilité activée.
La sortie Markdown formate ce que l'API parvient à charger. Si le site cible bloque le trafic des datacenters ou rend son contenu avec JavaScript, vous avez toujours besoin que l'API contourne ces défenses en premier. Associez format=md à un token JavaScript pour les pages rendues côté client, et laissez l'API faire tourner les IP pour les sites protégés. Un Markdown propre d'une coquille vide est toujours une coquille vide.
Utiliser la sortie Markdown dans un petit pipeline RAG
La génération augmentée par récupération, ou RAG, donne à un modèle accès à des connaissances extérieures avant qu'il ne réponde. Au lieu de se fier uniquement aux données d'entraînement, le système récupère d'abord le texte pertinent, puis transmet ce contexte au modèle. La forme habituelle est : récupérer le contenu, le diviser en morceaux, embarquer ces morceaux dans un magasin vectoriel, récupérer les plus pertinents au moment de la requête, puis soumettre un prompt au modèle avec eux.
La qualité de ce pipeline se décide bien avant que vous appeliez le modèle. Si la page récupérée est pleine de menus répétés, de bannières de cookies et de liens morts, ce bruit est découpé et indexé aux côtés du texte utile, et la qualité de récupération chute. Un Markdown propre donne à chaque morceau une meilleure chance de contenir du contenu significatif. Voici l'étape de récupération, utilisant la lisibilité pour que chaque document soit principalement du texte de corps.
import requests API = "https://api.crawlbase.com/" TOKEN = "YOUR_TOKEN" def fetch_markdown(url): params = { "token": TOKEN, "url": url, "format": "md", "md_readability": "true", } resp = requests.get(API, params=params, timeout=60) resp.raise_for_status() return resp.text
Avec le Markdown en main, divisez-le en morceaux. Comme le Markdown conserve ses titres, vous pouvez diviser sur les limites des titres plutôt que de couper aveuglément à un nombre de caractères, ce qui garde chaque morceau thématiquement cohérent.
import re def chunk_by_heading(markdown, max_chars=1200): sections = re.split(r"(?=^#{1,3} )", markdown, flags=re.MULTILINE) chunks = [] for section in sections: text = section.strip() if not text: continue if len(text) <= max_chars: chunks.append(text) else: for i in range(0, len(text), max_chars): chunks.append(text[i : i + max_chars]) return chunks
À partir de là, la dernière étape est ce que votre pipeline fait déjà : embarquer chaque morceau dans une base de données vectorielle pour la récupération, ou, pour un test rapide, déposer les morceaux directement dans un prompt. L'essentiel est que l'entrée est maintenant du texte propre, de sorte que les étapes d'embedding et de prompt héritent de cette propreté.
url = "https://example.com/some-article" markdown = fetch_markdown(url) chunks = chunk_by_heading(markdown) # Send the most relevant chunks as context to your model context = "\n\n".join(chunks[:3]) prompt = f"Answer using only this context:\n\n{context}\n\nQ: ..." print(len(chunks), "chunks ready for embedding or prompting")
Si vous souhaitez approfondir le côté récupération et modélisation, comment fonctionne l'extraction de données par IA explique comment des entrées propres se traduisent en sorties de modèle.
Supprimez entièrement l'étape de nettoyage HTML vers Markdown. Ajoutez format=md à votre requête et la Crawling API rend la page derrière une IP de confiance, la convertit côté serveur, et vous remet un Markdown ordonné prêt à être découpé et embarqué. Ajoutez md_readability=true pour ne conserver que le contenu principal. Essayez-le sur vos propres URL sur le forfait gratuit.
Ce que l'étape de nettoyage vous coûtait auparavant
Sans sortie Markdown native, le schéma courant est une chaîne de prétraitement fragile : récupérer le HTML, parser le DOM, supprimer les scripts et styles, enlever la navigation, trouver le corps de l'article, normaliser les espaces, puis convertir en Markdown, et seulement ensuite découper et embarquer. Chaque maillon de cette chaîne est un endroit où échouer.
Une refonte de site peut briser vos sélecteurs d'extraction de corps du jour au lendemain. Une nouvelle bannière de cookies peut s'infiltrer dans votre texte extrait. Un parser calibré pour un modèle de page peut silencieusement déformer un autre. Le résultat, c'est des ingénieurs qui passent leur temps à maintenir la logique de nettoyage plutôt qu'à améliorer la qualité de récupération, les prompts ou le produit lui-même.
Retourner du Markdown plus proche du crawl effondre cette chaîne. Le flux de travail devient : récupérer du Markdown, valider la réponse, découper, embarquer. Moins de pièces mobiles signifie moins d'échecs silencieux et plus de temps sur les parties du système qui font vraiment bouger les choses. Si vous effectuez cela sur de nombreux sites, la même logique qui simplifie une récupération se compose à l'échelle, ce qui est au cœur de l'article sur le scraping web à grande échelle.
Valider la réponse avant de l'indexer
Une bonne pratique qui s'avère payante : vérifiez la réponse au moment de l'ingestion, avant que de mauvaises données n'atteignent votre magasin vectoriel. Une page qui redirige, expire ou retourne un corps mince doit être interceptée tôt, car un morceau faible indexé aujourd'hui devient une mauvaise réponse la semaine prochaine.
def is_usable(markdown, min_chars=200): if markdown is None: return False stripped = markdown.strip() # Reject empty shells and near-empty error pages return len(stripped) >= min_chars md = fetch_markdown(url) if not is_usable(md): print("Skipping: thin or empty response") else: chunks = chunk_by_heading(md) # proceed to embed / index
C'est un petit garde-fou, mais c'est la différence entre un système de récupération qui reste fiable et un qui se remplit lentement de déchets. Un contenu source plus propre associé à une vérification de base maintient votre pipeline RAG web honnête dès la première requête.
Là où le Markdown prêt pour les LLM est le plus utile
La sortie Markdown trouve sa place partout où le contenu web doit devenir un contexte prêt pour les modèles :
- Chatbots de documentation. Transformez les pages de centre d'aide et de documentation produit en morceaux Markdown propres pour la recherche et la récupération, et gardez-les à jour avec un re-crawl périodique.
- Agents de recherche IA. Récupérez des articles, rapports et dépôts publics dans un format qu'un modèle peut lire rapidement, sans que l'agent brûle son budget sur le balisage.
- Surveillance de la concurrence et du marché. Suivez les pages de prix, pages de fonctionnalités et changelogs sous forme de texte lisible plutôt que de re-parser le HTML brut à chaque exécution.
- Recherche interne. Construisez un index de connaissances consultable sur un matériau source plus propre extrait du web.
- Pipelines de synthèse. Réduisez les longues pages en résumés concis avec bien moins de prétraitement.
Les agents bénéficient particulièrement de cette approche. Lorsqu'un outil retourne du Markdown filtré par la lisibilité plutôt que du HTML brut, le modèle reçoit quelque chose de proche d'un document utilisable dès le départ. Cela lui permet plus facilement de synthétiser, d'extraire des champs, de comparer des sources et de décider de la prochaine action, ce qui tend à produire une boucle d'agent plus propre. Si vous routez le trafic d'agents via des IP rotatives, ce qu'est un proxy IA explique comment cette couche s'articule avec des outils comme le Smart AI Proxy et le serveur Web MCP. Et lorsque l'objectif est des champs structurés plutôt que de la prose, la Crawling API retourne du JSON parsé à la place.
Garder le crawl non bloqué
Une sortie propre n'aide que si vous pouvez récupérer la page en premier lieu. Les sites qui valent la peine d'être scrapés pour le contexte IA sont souvent ceux qui se défendent contre les bots, donc l'étape de récupération doit gérer les blocages aussi bien que le formatage. Router via la Crawling API signifie que la rotation d'IP et le rendu sont gérés côté serveur, mais les bonnes habitudes générales s'appliquent toujours : rythmez vos requêtes, variez vos cibles, et lisez les codes de statut comme des signaux. Le guide complet se trouve dans comment scraper des sites web sans être bloqué.
Points clés
- Le Markdown est la bonne forme pour les modèles. Il conserve les titres, listes et tableaux tout en supprimant le balisage qui gaspille des tokens et perturbe la récupération.
-
Un seul paramètre change le format. Ajoutez
format=mdà la requête de la Crawling API ; ajoutezmd_readability=truepour extraire uniquement le contenu principal. - Une entrée plus propre élève l'ensemble du pipeline. De meilleurs morceaux conduisent à de meilleurs embeddings et à une récupération plus pertinente, décidée avant que vous n'appeliez le modèle.
- La conversion côté serveur supprime une chaîne fragile. Récupérez du Markdown, validez, découpez, embarquez, au lieu de maintenir vous-même la logique de suppression du DOM et de conversion HTML vers Markdown.
- Validez à l'ingestion. Une vérification rapide de la longueur intercepte les coquilles vides et les pages d'erreur avant qu'elles n'empoisonnent votre index.
- Le Markdown a toujours besoin d'une récupération non bloquée. Associez le format à un token JS et à la rotation d'IP pour que l'API charge d'abord le vrai contenu.
Foire aux questions
Qu'est-ce que le scraping web en Markdown prêt pour les LLM ?
Cela signifie collecter du contenu web dans un format qu'un modèle de langage peut utiliser immédiatement, avec peu ou pas de nettoyage. Au lieu de HTML brut rempli de scripts, styles et navigation, la sortie est un Markdown structuré propre qui est facile à découper, embarquer, synthétiser et intégrer dans des prompts. Avec Crawlbase, vous l'obtenez en ajoutant format=md à une requête de la Crawling API.
Comment obtenir une sortie Markdown depuis la Crawling API Crawlbase ?
Ajoutez format=md à votre requête et l'API retourne du Markdown plutôt que du HTML. Si vous voulez aussi l'extraction du contenu principal avant la conversion, ajoutez md_readability=true, qui supprime les menus, barres latérales et bruits de pied de page pour que le Markdown soit principalement le corps de l'article. Les deux paramètres font partie de la requête standard, donc aucune configuration supplémentaire n'est nécessaire.
Pourquoi le Markdown est-il meilleur que le HTML pour les pipelines RAG ?
Le Markdown préserve une structure utile comme les titres, listes, liens et tableaux sans le balisage environnant. Cela produit des morceaux plus propres, des embeddings plus précis et une récupération plus pertinente que du HTML brut et bruyant, où le contenu générique est indexé aux côtés du vrai contenu et fait baisser la qualité des réponses.
La sortie Markdown réduit-elle l'utilisation de tokens avec les LLM ?
Oui. Supprimer les scripts, styles et wrappers de mise en page rend la même page beaucoup plus petite en termes de tokens, surtout avec la lisibilité activée. Cela réduit le coût par appel et laisse plus de la fenêtre de contexte du modèle pour le contenu qui compte plutôt que pour le balisage qu'il devrait autrement lire et ignorer.
Puis-je toujours obtenir le contexte complet de la page, pas seulement l'article principal ?
Oui. Utilisez format=md seul, sans md_readability=true. Le Markdown simple conserve le contexte plus large de la page comme la navigation et les liens connexes, ce qui est utile pour l'analyse de la structure du site. Activez la lisibilité uniquement lorsque vous voulez le contenu principal isolé pour les embeddings, la synthèse ou les prompts.
Ai-je besoin d'un token JavaScript pour obtenir du Markdown de pages dynamiques ?
Si la page cible rend son contenu côté client, oui. Le formatage Markdown s'applique à ce que l'API charge, donc pour une page rendue par JavaScript, vous passez un token JS pour que la page se rende d'abord dans un vrai navigateur, puis demandez format=md. Pour les pages statiques, un token normal suffit.
Crawlez n'importe quel site à grande échelle, sans combattre l'infrastructure.
Crawlbase gère les proxies, les empreintes et les CAPTCHA afin que votre équipe livre des pipelines de données au lieu de maintenir la plomberie de crawl. 1 000 requêtes gratuites, sans carte requise.

