Mudança na API v2: A extração de schema JSON é totalmente suportada na v2, mas o formato da API mudou. Na v2, o schema é incorporado diretamente no objeto de formatos como formats: [{type: "json", schema: {...}}]. O parâmetro jsonOptions da v1 não existe mais na v2.
O Firecrawl usa IA para obter dados estruturados de páginas da web em 3 etapas:
-
Defina o esquema (opcional):
Defina um esquema JSON (no formato da OpenAI) para especificar os dados desejados, ou forneça apenas um
prompt se não precisar de um esquema rígido, junto com a URL da página.
-
Faça a requisição:
Envie sua URL e o esquema para nosso endpoint /scrape usando o modo JSON. Veja como aqui:
Scrape Endpoint Documentation
-
Obtenha seus dados:
Receba dados limpos e estruturados que correspondem ao seu esquema, prontos para uso imediato.
Isso torna rápido e fácil obter dados da web no formato de que você precisa.
Usado para extrair dados estruturados de páginas extraídas.
from firecrawl import Firecrawl
from pydantic import BaseModel
app = Firecrawl(api_key="fc-SUA-CHAVE-API")
class CompanyInfo(BaseModel):
company_mission: str
supports_sso: bool
is_open_source: bool
is_in_yc: bool
result = app.scrape(
'https://firecrawl.dev',
formats=[{
"type": "json",
"schema": CompanyInfo.model_json_schema()
}],
only_main_content=False,
timeout=120000
)
print(result)
Saída:
{
"success": true,
"data": {
"json": {
"company_mission": "Rastreamento e extração de dados na web com IA",
"supports_sso": true,
"is_open_source": true,
"is_in_yc": true
},
"metadata": {
"title": "Firecrawl",
"description": "Rastreamento e extração de dados na web com IA",
"robots": "follow, index",
"ogTitle": "Firecrawl",
"ogDescription": "Rastreamento e extração de dados na web com IA",
"ogUrl": "https://firecrawl.dev/",
"ogImage": "https://firecrawl.dev/og.png",
"ogLocaleAlternate": [],
"ogSiteName": "Firecrawl"
"sourceURL": "https://firecrawl.dev/"
},
}
}
Dados estruturados sem esquema
Você também pode extrair sem um esquema, apenas passando um prompt para o endpoint. O LLM escolhe a estrutura dos dados.
from firecrawl import Firecrawl
app = Firecrawl(api_key="fc-YOUR-API-KEY")
result = app.scrape(
'https://firecrawl.dev',
formats=[{
"type": "json",
"prompt": "Extraia a missão da empresa presente na página."
}],
only_main_content=False,
timeout=120000
)
print(result)
Resultado:
{
"success": true,
"data": {
"json": {
"company_mission": "Raspagem e extração de dados na web com IA",
},
"metadata": {
"title": "Firecrawl",
"description": "Raspagem e extração de dados na web com IA",
"robots": "seguir, indexar",
"ogTitle": "Firecrawl",
"ogDescription": "Raspagem e extração de dados na web com IA",
"ogUrl": "https://firecrawl.dev/",
"ogImage": "https://firecrawl.dev/og.png",
"ogLocaleAlternate": [],
"ogSiteName": "Firecrawl",
"sourceURL": "https://firecrawl.dev/"
},
}
}
Aqui está um exemplo completo de extração de informações estruturadas de empresas a partir de um site:
from firecrawl import Firecrawl
from pydantic import BaseModel
app = Firecrawl(api_key="fc-YOUR-API-KEY")
class CompanyInfo(BaseModel):
company_mission: str
supports_sso: bool
is_open_source: bool
is_in_yc: bool
result = app.scrape(
'https://firecrawl.dev/',
formats=[{
"type": "json",
"schema": CompanyInfo.model_json_schema()
}]
)
print(result)
Resultado:
{
"success": true,
"data": {
"json": {
"company_mission": "Transformar sites em dados prontos para LLM",
"supports_sso": true,
"is_open_source": true,
"is_in_yc": true
}
}
}
Ao usar o modo JSON na v2, inclua um objeto em formats com o esquema incorporado diretamente:
formats: [{ type: 'json', schema: { ... }, prompt: '...' }]
Parâmetros:
schema: JSON Schema que descreve a saída estruturada desejada (obrigatório para extração baseada em esquema).
prompt: prompt opcional para orientar a extração (também usado para extração sem esquema).
Importante: Diferente da v1, não há um parâmetro separado jsonOptions na v2. O esquema deve ser incluído diretamente dentro do objeto de formato no array formats.