Map
Extrae todas las URLs de un sitio mediante sitemap, motor de búsqueda y análisis de enlaces de página.
Introducción
La API Map de AnyCrawl extrae URLs de un sitio combinando varias fuentes de descubrimiento: análisis de sitemap, resultados de motor de búsqueda y extracción de enlaces HTML. Ofrece un descubrimiento de URLs completo para mapas del sitio, indexación de contenido y planificación de rastreos.
Características clave: la API devuelve datos de inmediato y de forma síncrona — sin sondeo ni webhooks. Combina tres fuentes de URL para máxima cobertura.
Características principales
- Descubrimiento multisource: combina análisis de sitemap, resultados de búsqueda y extracción de enlaces de página
- Soporte de sitemap: analiza robots.txt y sitemap.xml (incluidos índices de sitemap y gzip)
- Integración con búsqueda: usa automáticamente motores de búsqueda con el operador
site:para descubrir URLs - Extracción de enlaces: extrae todos los enlaces
<a href>de la página objetivo - Filtrado por dominio: filtra por dominio exacto o incluye subdominios
- Respuesta inmediata: API síncrona — obtén resultados al instante sin sondeo
Endpoint de la API
POST https://api.anycrawl.dev/v1/mapEjemplos de uso
cURL
Mapeo básico de URL
curl -X POST "https://api.anycrawl.dev/v1/map" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com"
}'Incluir subdominios
curl -X POST "https://api.anycrawl.dev/v1/map" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"include_subdomains": true,
"limit": 1000
}'Omitir el análisis del sitemap
Para resultados más rápidos cuando solo necesitas enlaces de página y resultados de búsqueda:
curl -X POST "https://api.anycrawl.dev/v1/map" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"ignore_sitemap": true
}'Parámetros de la petición
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
url | string | Sí | - | URL objetivo a mapear; debe ser una dirección HTTP/HTTPS válida |
limit | number | No | 5000 | Número máximo de URLs a devolver (1-50000) |
include_subdomains | boolean | No | false | Incluir URLs de subdominios (p. ej. blog.example.com) |
ignore_sitemap | boolean | No | false | Omitir el análisis del sitemap; solo motor de búsqueda y enlaces de página |
max_age | number | No | - | Antigüedad máxima de caché (ms). Usa 0 para omitir lecturas de caché; omite para usar el predeterminado del servidor |
use_index | boolean | No | true | Si se usa el índice de Page Cache (page_cache) como fuente adicional de URLs |
Comportamiento de caché
max_agecontrola las lecturas de Map Cache.0fuerza actualización.use_index=falsedesactiva la fuente del índice de Page Cache (requiere que Page Cache esté activado para tener efecto)./v1/mapno devuelvefromCacheen la respuesta (el uso de caché es interno).
Fuentes de descubrimiento de URL
La API Map combina tres fuentes para descubrir URLs:
1. Análisis de sitemap
- Analiza
robots.txtpara localizar sitemaps - Prueba rutas habituales:
/sitemap.xml,/sitemap.xml.gz - Admite índices de sitemap (sitemaps que contienen otros sitemaps)
- Admite sitemaps comprimidos con gzip
2. Resultados de motor de búsqueda
- Usa automáticamente el operador
site:dominio.compara descubrir páginas indexadas - Proporciona metadatos de título y descripción para las URLs descubiertas
3. Extracción de enlaces de página
- Extrae todos los enlaces
<a href>del HTML de la página objetivo - Captura el texto del enlace como metadato de título
- Captura el atributo
titleyaria-labelcomo descripción
Fuentes de metadatos
| Fuente | Título | Descripción |
|---|---|---|
| Sitemap | - | - |
| Motor de búsqueda | Título del resultado | Fragmento del resultado |
| Enlaces de página | Texto del enlace o atributo title | Atributo aria-label |
Formato de respuesta
Respuesta correcta (HTTP 200)
{
"success": true,
"data": [
{
"url": "https://example.com/page1",
"title": "Page Title",
"description": "Page description from search results"
},
{
"url": "https://example.com/page2",
"title": "Another Page"
},
{
"url": "https://example.com/page3"
}
]
}Respuestas de error
400 - Error de validación
{
"success": false,
"error": "Validation error",
"message": "Invalid url",
"details": {
"issues": [
{
"field": "url",
"message": "Invalid url",
"code": "invalid_string"
}
]
}
}402 - Créditos insuficientes
{
"success": false,
"error": "Insufficient credits",
"message": "Estimated credits required (1) exceeds available credits (0).",
"details": {
"estimated_total": 1,
"available_credits": 0
}
}500 - Error interno del servidor
{
"success": false,
"error": "Internal server error",
"message": "Error message details"
}Buenas prácticas
Casos de uso
- Planificación de rastreo: usa Map para descubrir todas las URLs antes de un rastreo completo
- Indexación de contenido: construye un índice completo de las páginas de un sitio
- Auditoría del sitio: encuentra todas las páginas para auditorías SEO o de accesibilidad
- Análisis de enlaces: analiza la estructura de enlaces internos
Consejos de rendimiento
- Usa
ignore_sitemap: truepara resultados más rápidos cuando el sitemap no haga falta - Ajusta
limitpara no procesar URLs innecesarias - Usa
include_subdomains: false(predeterminado) salvo que necesites descubrimiento entre subdominios
Combinar con Crawl
Map es ideal para planificar operaciones de rastreo:
// Paso 1: Descubrir URLs con Map
const mapResponse = await fetch("/v1/map", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
url: "https://docs.example.com",
limit: 100,
}),
});
const { data: urls } = await mapResponse.json();
// Paso 2: Usar las URLs descubiertas para planificar el rastreo
const crawlResponse = await fetch("/v1/crawl", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
url: "https://docs.example.com",
include_paths: urls.map((u) => new URL(u.url).pathname),
limit: 100,
}),
});Créditos
| Operación | Créditos |
|---|---|
| Operación Map | 1 |
Total: 1 crédito por petición.
Preguntas frecuentes
P: ¿En qué se diferencia Map de Crawl?
R: Map descubre URLs sin obtener el contenido de las páginas: es rápido y ligero. Crawl obtiene y procesa el contenido real de cada página. Usa Map para descubrimiento y planificación; Crawl para extracción de contenido.
P: ¿Por qué faltan algunas URLs en los resultados?
R: Posibles causas:
- Las URLs están en otro dominio/subdominio (usa
include_subdomains: true) - El sitio no tiene sitemap
- Las URLs se generan dinámicamente con JavaScript
- Las URLs superan el parámetro
limit
P: ¿Cómo funciona el descubrimiento por motor de búsqueda?
R: La API Map consulta automáticamente motores de búsqueda con site:dominio.com para descubrir páginas indexadas. Ayuda a encontrar URLs que pueden no estar en el sitemap ni enlazadas desde la página principal.
P: ¿Map sigue redirecciones?
R: Map extrae las URLs tal como aparecen en sitemaps y enlaces de página. No sigue redirecciones para descubrir URLs adicionales.
P: ¿Hay límite de velocidad?
R: No, la API admite alta concurrencia de forma nativa. Puedes hacer varias peticiones simultáneas sin preocuparte por límites de frecuencia.