Modo JSON
Extraia dados estruturados de páginas web com LLMs e validação por JSON Schema.
Introdução
O modo JSON permite extrair dados estruturados de qualquer página web usando grandes modelos de linguagem (LLMs).
O AnyCrawl permite definir um JSON Schema e prompts para orientar a extração, garantindo que a saída corresponda ao formato desejado.
Exemplos de uso
O modo JSON oferece três modos de extração estruturada:
- Somente prompt: use um prompt em linguagem natural para descrever o que extrair. O LLM define a estrutura da saída.
- Somente schema: defina um JSON Schema para restringir rigorosamente a estrutura. O LLM preenche o conteúdo.
- Prompt + schema: combine os dois para orientar estrutura e conteúdo com precisão.
Dica: defina extract_source para controlar se a extração estruturada lê do markdown gerado ou do html original. O padrão é markdown; use html quando o markdown perder estrutura importante.
Importante: inclua "json" em formats ao usar json_options; caso contrário a resposta não terá JSON extraído.
1. Somente prompt (estrutura flexível)
Passos:
- Defina a URL da página
- Escreva um prompt descrevendo as informações a extrair
- Envie a requisição
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. Somente schema (estrutura rígida)
Passos:
- Defina a URL da página
- Defina um JSON Schema com os campos e tipos desejados
- Envie a requisição
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 (estrutura e conteúdo guiados)
Passos:
- Defina a URL da página
- Defina um JSON Schema para a estrutura de saída
- Escreva um prompt para orientar a extração
- Envie a requisição
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)."
}
}'Objeto json_options
O parâmetro json_options é um objeto que aceita:
schema: schema usado na extração.user_prompt: prompt do usuário para a extração.schema_name: nome opcional da saída gerada.schema_description: descrição opcional da saída gerada.
JSON Schema
O schema usado na extração. Campos comuns:
type: tipo do valor; tipos suportados abaixo.properties: (paraobject) objeto com campos e respectivos schemas.required: (paraobject) array de nomes de campos obrigatórios.
Tipos suportados
| Tipo | Descrição | Exemplo |
|---|---|---|
string | Texto | Nome da empresa, descrições, títulos |
number | Valores numéricos | Preços, quantidades, avaliações |
boolean | Verdadeiro/falso | Flags de disponibilidade, indicadores |
object | Estruturas aninhadas | Endereço, especificações de produto |
array | Listas de valores ou objetos | Tags, categorias, listas de recursos |
Exemplo de schema
{
"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"]
}Documentação relacionada
- API Scrape — Scraping básico com extração JSON
- API Crawl — Crawling com opções de extração JSON
- Sistema de templates — Templates avançados de extração