AnyCrawl

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.txt et sitemap.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/map

Exemples 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ètreTypeObligatoireDéfautDescription
urlstringOui-URL cible à cartographier, doit être une adresse HTTP/HTTPS valide
limitnumberNon5000Nombre maximal d’URLs à renvoyer (1-50000)
include_subdomainsbooleanNonfalseInclure les URLs des sous-domaines (par ex. blog.example.com)
ignore_sitemapbooleanNonfalseIgnorer l’analyse du sitemap, n’utiliser que la recherche et les liens de page
max_agenumberNon-Durée de vie max du cache (ms). Utilisez 0 pour ignorer la lecture du cache ; omis = défaut serveur
use_indexbooleanNontrueUtiliser ou non l’index du cache de page (page_cache) comme source d’URL supplémentaire

Comportement du cache

  • max_age contrôle les lectures du cache Map. 0 force un rafraîchissement.
  • use_index=false désactive la source d’index du cache de page (le cache de page doit être activé pour un effet).
  • /v1/map ne renvoie pas fromCache dans 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.txt pour 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.com pour 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 title et aria-label comme description

Sources des métadonnées

SourceTitreDescription
Sitemap--
Moteur de rechercheTitre du résultatExtrait (snippet) du résultat
Liens de pageTexte du lien ou attribut titleAttribut 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

  1. Planification de crawl : utilisez Map pour découvrir toutes les URLs avant un crawl complet
  2. Indexation de contenu : construire un index complet des pages d’un site
  3. Audit de site : trouver toutes les pages pour SEO ou accessibilité
  4. Analyse de liens : analyser la structure de maillage interne

Conseils de performance

  • Utilisez ignore_sitemap: true pour aller plus vite quand le sitemap n’est pas nécessaire
  • Définissez un limit adapté 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érationCrédits
Opération Map1

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.