AnyCrawl

JSON-Modus

Strukturierte Daten aus Webseiten mit LLMs extrahieren – inklusive JSON-Schema-Validierung.

Einführung

Der JSON-Modus ermöglicht es Ihnen, mit großen Sprachmodellen (LLMs) strukturierte Daten von beliebigen Webseiten zu extrahieren.

AnyCrawl erlaubt die Definition eines JSON-Schemas und von Prompts zur Steuerung der Extraktion, sodass die Ausgabe Ihrem gewünschten Format entspricht.

Nutzungsbeispiele

Der JSON-Modus unterstützt drei Modi für strukturierte Extraktion:

  1. Nur Prompt: Natürlichsprachlicher Prompt beschreibt, was extrahiert werden soll. Das LLM bestimmt die Ausgabestruktur.
  2. Nur Schema: JSON-Schema definiert die Ausgabe strikt. Das LLM füllt die Inhalte.
  3. Prompt + Schema: Kombination aus Schema und Prompt für präzise Struktur- und Inhaltssteuerung.

Tipp: Setzen Sie extract_source, um zu steuern, ob die strukturierte Extraktion aus generiertem markdown oder aus dem Original-html liest. Standard ist markdown; verwenden Sie html, wenn Markdown wichtige Struktur verliert.

Wichtig: Bei json_options muss "json" in formats enthalten sein, sonst enthält die Antwort keine extrahierten JSON-Daten.


1. Nur Prompt (flexible Struktur)

Schritte:

  1. Ziel-URL der Webseite setzen
  2. Prompt formulieren, der die zu extrahierenden Informationen beschreibt
  3. Anfrage senden
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. Nur Schema (strikte Struktur)

Schritte:

  1. Ziel-URL der Webseite setzen
  2. JSON-Schema für gewünschte Felder und Typen definieren
  3. Anfrage senden
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. Prompt + Schema (geführte Struktur und Inhalte)

Schritte:

  1. Ziel-URL der Webseite setzen
  2. JSON-Schema für die Ausgabestruktur definieren
  3. Prompt zur Steuerung der Extraktion formulieren
  4. Anfrage senden
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)."
    }
  }'

JSON-Options-Objekt

Der Parameter json_options ist ein Objekt mit folgenden Feldern:

  • schema: Schema für die Extraktion.
  • user_prompt: Benutzer-Prompt für die Extraktion.
  • schema_name: Optionaler Name der zu erzeugenden Ausgabe.
  • schema_description: Optionale Beschreibung der zu erzeugenden Ausgabe.

JSON-Schema

Das Schema für die Extraktion. Typische Felder:

  • type: Werttyp, unterstützte Typen siehe unten.
  • properties: (für object) Objekt mit Feldern und deren Schemas.
  • required: (für object) Array erforderlicher Feldnamen.

Unterstützte Typen

TypBeschreibungBeispiel
stringTextdatenFirmenname, Beschreibungen, Titel
numberZahlenwertePreise, Mengen, Bewertungen
booleanWahr-/Falsch-WerteVerfügbarkeitsflags, Feature-Indikatoren
objectVerschachtelte StrukturenAdressen, Produktspezifikationen
arrayListen von Werten/ObjektenTags, Kategorien, Feature-Listen

Schema-Beispiel

{
    "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"]
}

Verwandte Dokumentation