AnyCrawl

Mode JSON

Extraire des données structurées depuis des pages web à l’aide de LLM avec validation par schéma JSON.

Introduction

Le mode JSON vous permet d’extraire des données structurées depuis n’importe quelle page web à l’aide de grands modèles de langage (LLM).

AnyCrawl vous permet de définir un schéma JSON et des invites pour guider l’extraction, afin que la sortie corresponde au format souhaité.

Exemples d’utilisation

Le mode JSON prend en charge trois modes d’extraction structurée :

  1. Invite uniquement : utilisez une invite en langage naturel pour décrire ce que vous voulez extraire. Le LLM détermine la structure de sortie.
  2. Schéma uniquement : définissez un schéma JSON pour contraindre strictement la structure de sortie. Le LLM remplit le contenu.
  3. Invite + schéma : combinez schéma et invite pour un guidage précis de la structure et du contenu.

Astuce : définissez extract_source pour contrôler si l’extraction structurée lit le markdown généré ou le html d’origine. La valeur par défaut est markdown ; utilisez html lorsque le markdown perd une structure importante.

Important : incluez "json" dans formats lorsque vous utilisez json_options, sinon la réponse ne contiendra pas de données JSON extraites.


1. Invite uniquement (structure flexible)

Étapes :

  1. Définissez l’URL de la page cible
  2. Rédigez une invite décrivant les informations à extraire
  3. Envoyez la requête
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["json"],
    "json_options": {
      "user_prompt": "Extract the company mission, open source status, and employee count."
    }
  }'

2. Schéma uniquement (structure stricte)

Étapes :

  1. Définissez l’URL de la page cible
  2. Définissez un schéma JSON pour les champs et types souhaités
  3. Envoyez la requête
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["json"],
    "json_options": {
      "schema": {
        "type": "object",
        "properties": {
          "company_mission": { "type": "string" },
          "is_open_source": { "type": "boolean" },
          "employee_count": { "type": "number" }
        },
        "required": ["company_mission"]
      }
    }
  }'

3. Invite + schéma (structure et contenu guidés)

Étapes :

  1. Définissez l’URL de la page cible
  2. Définissez un schéma JSON pour la structure de sortie
  3. Rédigez une invite pour guider l’extraction
  4. Envoyez la requête
curl -X POST "https://api.anycrawl.dev/v1/scrape" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "formats": ["json"],
    "json_options": {
      "schema": {
        "type": "object",
        "properties": {
          "company_mission": { "type": "string" },
          "is_open_source": { "type": "boolean" },
          "employee_count": { "type": "number" }
        },
        "required": ["company_mission"]
      },
      "user_prompt": "Extract the company mission (string), open source status (boolean), and employee count (number)."
    }
  }'

Objet json_options

Le paramètre json_options est un objet qui accepte les paramètres suivants :

  • schema : schéma utilisé pour l’extraction.
  • user_prompt : invite utilisateur pour l’extraction.
  • schema_name : nom optionnel de la sortie à générer.
  • schema_description : description optionnelle de la sortie à générer.

Schéma JSON

Schéma utilisé pour l’extraction. Champs courants :

  • type : type de la valeur ; types pris en charge ci-dessous.
  • properties : (pour object) objet décrivant les champs et leurs schémas.
  • required : (pour object) tableau des noms de champs obligatoires.

Types pris en charge

TypeDescriptionExemple
stringDonnées texteNom d’entreprise, descriptions, titres
numberValeurs numériquesPrix, quantités, notes
booleanVrai / fauxIndicateurs de disponibilité, fonctionnalités
objectStructures imbriquéesAdresse, spécifications produit
arrayListes de valeurs ou d’objetsTags, catégories, listes de fonctionnalités

Exemple de schéma

{
    "type": "object",
    "properties": {
        "company_name": {
            "type": "string"
        },
        "is_open_source": {
            "type": "object",
            "properties": {
                "answer": {
                    "type": "string"
                },
                "value": {
                    "type": "boolean"
                }
            }
        },
        "employee_count": {
            "type": "number"
        }
    },
    "required": ["company_name"]
}

Documentation associée