RAG Web Crawler — Páginas web a Markdown y fragmentos de texto
Rastrea páginas web públicas y obtén Markdown limpio, texto plano y fragmentos solapados con URL de origen y posiciones de caracteres, listos para RAG.
características clave
Markdown limpio y texto plano de cada página, con encabezados, listas, enlaces, bloques de código y tablas sencillas
Fragmentos listos para embeddings que se solapan y terminan en saltos de párrafo o de oración, cada uno con un id estable, su URL y título de origen y posiciones exactas de caracteres para citar
Primero el contenido principal: se omiten menús, cabeceras, pies de página y barras laterales, y los selectores CSS quitan cualquier otra cosa que indiques
Sigue enlaces dentro de cada sitio, hasta cinco niveles, y descarga cada página una sola vez
Búsqueda en lugar de URL: cada página de resultados de una consulta se rastrea como una URL inicial (requiere un plan de pago de Apify)
Respeta robots.txt por defecto, con pausas prudentes entre solicitudes al mismo sitio
Las páginas conservan su idioma — inglés, chino y otros — sin traducción
Un estado y un código de error para cada página, y un resumen de cada ejecución con recuentos y el motivo de parada
casos de uso
- Crear la base de conocimiento de un chatbot RAG a partir de documentación y páginas de ayuda
- Dar a agentes de IA páginas web actuales que puedan citar
- Convertir una lista de artículos en embeddings para búsqueda semántica
- Reunir las páginas que encuentra una búsqueda sobre un tema, en su idioma original
- Actualizar una base vectorial de forma programada, con ids de fragmento que no cambian mientras la página no cambie
- Dar a agentes de IA páginas web en Markdown a través del servidor MCP de Apify
parámetros de entrada
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
startUrls | array | opcional | URL de páginas públicas para rastrear, hasta 1.000 |
query | string | opcional | Consulta de búsqueda cuyas páginas de resultados se rastrean (requiere un plan de pago de Apify) |
queries | array | opcional | Más consultas de búsqueda, combinadas con query |
maxResultsPerQuery | number | opcional | Resultados de búsqueda que se rastrean por consulta (por defecto 5, como máximo 50) |
maxPages | number | opcional | Máximo de páginas distintas que programa una ejecución (por defecto 20, como máximo 1.000) |
maxDepth | number | opcional | Cuántos niveles de enlaces seguir dentro de cada sitio (por defecto 0 = solo las URL iniciales, como máximo 5) |
maxConcurrency | number | opcional | Páginas procesadas a la vez (por defecto 3) |
maxSearchRequests | number | opcional | Solicitudes de búsqueda por ejecución, reintentos incluidos (por defecto 10, 0 = sin búsqueda) |
maxFetchRequests | number | opcional | Todos los intentos de red por ejecución, robots.txt y reintentos incluidos (por defecto 100) |
requestTimeoutSecs | number | opcional | Tiempo de espera de cada solicitud, en segundos (por defecto 30) |
maxResponseBytes | number | opcional | Respuesta de página más grande que se acepta (por defecto 2 MiB) |
maxContentChars | number | opcional | Texto más largo que se conserva por página, en caracteres (por defecto 50.000) |
maxOutputBytes | number | opcional | Salida total por ejecución (por defecto 20 MiB) |
respectRobotsTxt | boolean | opcional | Consultar antes el robots.txt de cada sitio (activado por defecto) |
onlyMainContent | boolean | opcional | Conservar solo el contenido principal de la página (activado por defecto) |
removeSelectors | array | opcional | Selectores CSS de los elementos que se quitan antes de extraer |
chunkSize | number | opcional | Longitud del fragmento en caracteres, no en tokens (por defecto 1.000) |
chunkOverlap | number | opcional | Caracteres que comparten fragmentos consecutivos (por defecto 150) |
Ejemplo de salida
Una página guardada en una ejecución real, con el texto acortado y uno de sus cinco fragmentos:
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}
Las posiciones de los fragmentos cuentan puntos de código Unicode en text. Cada ejecución escribe además REQUESTS, un resultado por página con su estado y código de error, y OUTPUT, el resumen de la ejecución con recuentos, el motivo de parada y los eventos cobrados.
Consejos
- Usa
idcomo ID de registro en tu base vectorial. No cambia entre ejecuciones mientras la página y tu configuración de fragmentos no cambien, así que al escribir los fragmentos poriden una ejecución programada se reemplazan en lugar de duplicarse. - Empieza con pocas páginas. Revisa el Markdown de tus páginas antes de subir
maxPagesomaxDepth, y quita restos como cajas de enlaces relacionados conremoveSelectors. - Lee
REQUESTSjunto con el Dataset. Una ejecución puede terminar bien aunque algunas páginas se hayan omitido o hayan fallado, y cada una indica por qué.
faq
¿En qué se diferencia de un scraper web genérico?
¿Necesito una clave de API?
¿Renderiza JavaScript?
¿Qué páginas puede leer?
¿Está permitido rastrear sitios web?
relacionado en ~/utility
Scraper de Schema Markup y auditor SEO
Extrae datos estructurados y audita el SEO de cualquier sitio web.
abrirUniversal Web Printer — URL y HTML a PDF, imagen
Convierte URLs y HTML a PDF, PNG, JPEG o WebP.
abrir