RAG Web Crawler — Pages web en Markdown et fragments de texte
Explorez des pages web publiques et obtenez du Markdown propre, du texte brut et des fragments chevauchants avec URL source et positions, prêts pour le RAG.
fonctionnalités clés
Du Markdown propre et du texte brut pour chaque page, avec titres, listes, liens, blocs de code et tableaux simples
Des fragments prêts pour les embeddings, qui se chevauchent et s'arrêtent sur des fins de paragraphe ou de phrase, chacun avec un id stable, son URL et son titre source et des positions de caractères exactes pour citer
Le contenu principal d'abord : menus, en-têtes, pieds de page et barres latérales sont écartés, et des sélecteurs CSS retirent tout ce que vous indiquez en plus
Suivi des liens au sein de chaque site, jusqu'à cinq niveaux, chaque page n'étant récupérée qu'une fois
Une recherche à la place des URL : chaque page de résultats d'une requête est explorée comme une URL de départ (offre Apify payante requise)
robots.txt respecté par défaut, avec un rythme poli entre les requêtes vers un même site
Les pages gardent leur langue — anglais, chinois et autres — sans traduction
Un statut et un code d'erreur pour chaque page, et pour chaque exécution un résumé avec les compteurs et le motif d'arrêt
cas d’usage
- Constituer la base de connaissances d'un chatbot RAG à partir de documentation et de pages d'aide
- Ancrer des agents IA dans des pages web actuelles qu'ils peuvent citer
- Transformer une liste d'articles en embeddings pour la recherche sémantique
- Rassembler les pages qu'une recherche trouve sur un sujet, dans leur langue d'origine
- Rafraîchir une base vectorielle à intervalles réguliers, avec des id de fragment qui ne changent pas tant que la page ne change pas
- Fournir des pages web en Markdown à des agents IA via le serveur MCP d'Apify
paramètres d’entrée
| Paramètre | Type | Requis | Description |
|---|---|---|---|
startUrls | array | optionnel | URL de pages publiques à explorer, jusqu'à 1 000 |
query | string | optionnel | Requête de recherche dont les pages de résultats sont explorées (offre Apify payante requise) |
queries | array | optionnel | D'autres requêtes de recherche, fusionnées avec query |
maxResultsPerQuery | number | optionnel | Résultats de recherche explorés par requête (5 par défaut, 50 au plus) |
maxPages | number | optionnel | Nombre maximal de pages distinctes planifiées par exécution (20 par défaut, 1 000 au plus) |
maxDepth | number | optionnel | Profondeur de liens suivie dans chaque site (0 par défaut = URL de départ seulement, 5 au plus) |
maxConcurrency | number | optionnel | Pages traitées en même temps (3 par défaut) |
maxSearchRequests | number | optionnel | Requêtes de recherche par exécution, nouvelles tentatives comprises (10 par défaut, 0 = pas de recherche) |
maxFetchRequests | number | optionnel | Toutes les tentatives réseau par exécution, robots.txt et nouvelles tentatives compris (100 par défaut) |
requestTimeoutSecs | number | optionnel | Délai d'expiration de chaque requête, en secondes (30 par défaut) |
maxResponseBytes | number | optionnel | Plus grande réponse de page acceptée (2 Mio par défaut) |
maxContentChars | number | optionnel | Texte le plus long conservé par page, en caractères (50 000 par défaut) |
maxOutputBytes | number | optionnel | Sortie totale par exécution (20 Mio par défaut) |
respectRobotsTxt | boolean | optionnel | Consulter d'abord le robots.txt de chaque site (activé par défaut) |
onlyMainContent | boolean | optionnel | Ne garder que le contenu principal de la page (activé par défaut) |
removeSelectors | array | optionnel | Sélecteurs CSS des éléments à retirer avant l'extraction |
chunkSize | number | optionnel | Longueur d'un fragment en caractères, pas en tokens (1 000 par défaut) |
chunkOverlap | number | optionnel | Caractères partagés par deux fragments consécutifs (150 par défaut) |
Exemple de sortie
Une page enregistrée lors d’une exécution réelle, texte raccourci et un seul de ses cinq fragments affiché :
1{
2 "schemaVersion": "1.0",
3 "url": "https://www.w3.org/WAI/tutorials/tables/one-header/",
4 "title": "Tables with One Header",
5 "description": "Accessibility resources free online from the international standards organization: W3C Web Accessibility Initiative (WAI).",
6 "languageCode": "en",
7 "canonicalUrl": "https://www.w3.org/WAI/tutorials/tables/one-header/",
8 "markdown": "# Tables with One Header\n\nin [Tables Tutorial](https://www.w3.org/WAI/tutorials/tables/)\n\n## Overview\n\n…",
9 "text": "Tables with One Header\n\nin Tables Tutorial\n\nOverview\n\nThis page covers tables that have one simple header for rows or one simple header for columns. …",
10 "chunks": [
11 {
12 "id": "495cb4e58e13bbf9b5cdbe922f7ea652973ca4dfda61b952aaa021db045a450c",
13 "index": 0,
14 "text": "Tables with One Header\n\nin Tables Tutorial\n\nOverview\n\nThis page covers tables that have one simple header for rows or one simple header for columns. …",
15 "startChar": 0,
16 "endChar": 988,
17 "sourceUrl": "https://www.w3.org/WAI/tutorials/tables/one-header/",
18 "title": "Tables with One Header"
19 }
20 ],
21 "contentTruncated": false,
22 "sources": [],
23 "crawl": {
24 "depth": 0,
25 "httpStatusCode": 200,
26 "loadedAt": "2026-10-19T07:03:53.643Z",
27 "contentType": "text/html",
28 "renderingMode": "http",
29 "extractionMethod": "main"
30 }
31}
Les positions des fragments comptent les points de code Unicode de text. Chaque exécution écrit aussi REQUESTS, un résultat par page avec son statut et son code d’erreur, et OUTPUT, le résumé de l’exécution avec les compteurs, le motif d’arrêt et les événements facturés.
Conseils
- Utilisez
idcomme identifiant d’enregistrement dans votre base vectorielle. Il reste le même d’une exécution à l’autre tant que la page et vos réglages de découpage ne changent pas : en écrivant les fragments paridlors d’une exécution planifiée, vous les remplacez au lieu d’ajouter des copies. - Commencez par quelques pages. Vérifiez le Markdown de vos pages avant d’augmenter
maxPagesoumaxDepth, et retirez les restes comme les blocs de liens connexes avecremoveSelectors. - Lisez
REQUESTSen même temps que le Dataset. Une exécution peut réussir alors que certaines pages ont été ignorées ou ont échoué, et chacune indique pourquoi.
faq
En quoi diffère-t-il d'un scraper web généraliste ?
Faut-il une clé d'API ?
Exécute-t-il le JavaScript ?
Quelles pages peut-il lire ?
Explorer des sites web est-il autorisé ?
similaires dans ~/utility
Schema Markup Scraper & SEO Auditor
Extrayez les données structurées et auditez le SEO de n’importe quel site.
ouvrirUniversal Web Printer — URL et HTML vers PDF, image
Convertissez URLs et HTML en PDF, PNG, JPEG ou WebP.
ouvrir