Map
Extraire toutes les URLs d’un site via l’analyse du sitemap, du moteur de recherche et des liens de page.
Introduction
L’API Map d’AnyCrawl extrait les URLs d’un site en combinant plusieurs sources de découverte : analyse des sitemaps, résultats de moteurs de recherche et extraction des liens HTML. Elle offre une découverte d’URLs complète pour la cartographie de site, l’indexation de contenu et la planification de crawls.
Points clés : l’API renvoie les données immédiatement et de façon synchrone — pas de polling ni de webhooks. Elle combine trois sources d’URL pour une couverture maximale.
Fonctionnalités principales
- Découverte multi-sources : combine analyse de sitemap, résultats de recherche et liens de page
- Prise en charge des sitemaps : analyse de
robots.txtetsitemap.xml(y compris index et gzip) - Intégration recherche : utilise automatiquement les moteurs avec l’opérateur
site:pour la découverte d’URL - Extraction de liens : extrait tous les liens
<a href>de la page cible - Filtrage par domaine : filtre par domaine exact ou inclusion des sous-domaines
- Réponse immédiate : API synchrone — résultats instantanés sans polling
Point de terminaison API
POST https://api.anycrawl.dev/v1/mapExemples d’utilisation
cURL
Cartographie d’URL de base
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"
}'Inclure les sous-domaines
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
}'Ignorer l’analyse du sitemap
Pour des résultats plus rapides lorsque seuls les liens de page et la recherche suffisent :
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
}'Paramètres de requête
| Paramètre | Type | Obligatoire | Défaut | Description |
|---|---|---|---|---|
url | string | Oui | - | URL cible à cartographier, doit être une adresse HTTP/HTTPS valide |
limit | number | Non | 5000 | Nombre maximal d’URLs à renvoyer (1-50000) |
include_subdomains | boolean | Non | false | Inclure les URLs des sous-domaines (par ex. blog.example.com) |
ignore_sitemap | boolean | Non | false | Ignorer l’analyse du sitemap, n’utiliser que la recherche et les liens de page |
max_age | number | Non | - | Durée de vie max du cache (ms). Utilisez 0 pour ignorer la lecture du cache ; omis = défaut serveur |
use_index | boolean | Non | true | Utiliser ou non l’index du cache de page (page_cache) comme source d’URL supplémentaire |
Comportement du cache
max_agecontrôle les lectures du cache Map.0force un rafraîchissement.use_index=falsedésactive la source d’index du cache de page (le cache de page doit être activé pour un effet)./v1/mapne renvoie pasfromCachedans la réponse (usage interne du cache).
Sources de découverte d’URL
L’API Map combine trois sources pour découvrir les URLs :
1. Analyse du sitemap
- Analyse
robots.txtpour trouver les emplacements des sitemaps - Essaie les chemins courants :
/sitemap.xml,/sitemap.xml.gz - Prend en charge les index de sitemap (sitemaps contenant d’autres sitemaps)
- Prend en charge les sitemaps compressés gzip
2. Résultats de moteur de recherche
- Utilise automatiquement l’opérateur
site:domain.compour découvrir les pages indexées - Fournit des métadonnées titre et description pour les URLs découvertes
3. Extraction des liens de page
- Extrait tous les liens
<a href>du HTML de la page cible - Utilise le texte du lien comme métadonnée titre
- Utilise l’attribut
titleetaria-labelcomme description
Sources des métadonnées
| Source | Titre | Description |
|---|---|---|
| Sitemap | - | - |
| Moteur de recherche | Titre du résultat | Extrait (snippet) du résultat |
| Liens de page | Texte du lien ou attribut title | Attribut aria-label |
Format de réponse
Réponse réussie (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"
}
]
}Réponses d’erreur
400 — Erreur de validation
{
"success": false,
"error": "Validation error",
"message": "Invalid url",
"details": {
"issues": [
{
"field": "url",
"message": "Invalid url",
"code": "invalid_string"
}
]
}
}402 — Crédits insuffisants
{
"success": false,
"error": "Insufficient credits",
"message": "Estimated credits required (1) exceeds available credits (0).",
"details": {
"estimated_total": 1,
"available_credits": 0
}
}500 — Erreur interne du serveur
{
"success": false,
"error": "Internal server error",
"message": "Error message details"
}Bonnes pratiques
Cas d’usage
- Planification de crawl : utilisez Map pour découvrir toutes les URLs avant un crawl complet
- Indexation de contenu : construire un index complet des pages d’un site
- Audit de site : trouver toutes les pages pour SEO ou accessibilité
- Analyse de liens : analyser la structure de maillage interne
Conseils de performance
- Utilisez
ignore_sitemap: truepour aller plus vite quand le sitemap n’est pas nécessaire - Définissez un
limitadapté pour éviter de traiter des URLs inutiles - Utilisez
include_subdomains: false(défaut) sauf si vous avez besoin de sous-domaines inter-liés
Combiner avec Crawl
Map est idéal pour planifier les crawls :
// Étape 1 : découvrir les URLs avec 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();
// Étape 2 : utiliser les URLs découvertes pour planifier le crawl
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édits
| Opération | Crédits |
|---|---|
| Opération Map | 1 |
Total : 1 crédit par requête.
Questions fréquentes
Q : Quelle est la différence entre Map et Crawl ?
R : Map découvre les URLs sans récupérer le contenu des pages — rapide et léger. Crawl récupère et traite le contenu réel de chaque page. Utilisez Map pour la découverte et la planification ; Crawl pour l’extraction de contenu.
Q : Pourquoi certaines URLs manquent dans les résultats ?
R : Raisons possibles :
- URLs sur un autre domaine / sous-domaine (utilisez
include_subdomains: true) - Absence de sitemap sur le site
- URLs générées dynamiquement en JavaScript
- Dépassement du paramètre
limit
Q : Comment fonctionne la découverte via moteur de recherche ?
R : L’API Map interroge automatiquement les moteurs avec site:domain.com pour trouver les pages indexées. Cela aide à trouver des URLs absentes du sitemap ou non liées depuis la page d’accueil.
Q : Map suit-il les redirections ?
R : Map extrait les URLs telles qu’elles apparaissent dans les sitemaps et les liens. Elle ne suit pas les redirections pour découvrir d’autres URLs.
Q : Y a-t-il une limite de débit ?
R : Non, l’API prend nativement en charge la forte concurrence. Vous pouvez lancer plusieurs requêtes simultanées sans souci de limitation de débit.