Skip to main content
POST https://api.acedata.cloud/webextrator/extract A API de Extração Inteligente WebExtrator converte uma URL em resultados estruturados tipificados — artigos, produtos, receitas, vídeos, discussões, recrutamento, etc., juntamente com Markdown e texto puro limpos. Quando você deseja “dados estruturados limpos” em vez de HTML bruto, esta é a interface a ser utilizada. A base é uma linha de produção de três camadas:
  1. Mapper JSON-LD schema.org — Determinístico, custo zero de LLM. Cobre Wikipedia / BestBuy / AllRecipes / YouTube / a maioria das notícias / a maioria das páginas de produtos.
  2. Extração LLM tipificada — Acionada apenas quando schema.org não é atingido. Seleciona Schema de acordo com o tipo de página, validação rigorosa com Zod.
  3. Readability + Markdown como fallback — Sempre em execução, preenche os campos de nível superior que as duas primeiras camadas não preencheram.
Requisições de URL duplicadas serão capturadas pelo cache de resultados Redis, retornando em <1 ms.

Processo de Solicitação

Para usar a página de serviços WebExtrator, primeiro acesse o Console Ace Data Cloud para obter seu Token de API, que deve ser mantido em segurança. Se você ainda não estiver logado ou registrado, será redirecionado automaticamente para a página de login, convidando-o a se registrar e fazer login. Após a conclusão, você será redirecionado de volta para a página atual. Um Token de API é suficiente para acessar todos os serviços da plataforma, não sendo necessário solicitar individualmente para cada serviço. A primeira solicitação oferece um crédito gratuito, permitindo uma experiência sem custo; quando o crédito estiver baixo, você pode recarregar o saldo geral no console.
📘 Documentação completa: Página de serviços WebExtrator →

Autenticação

Parâmetros de Solicitação

Extract aceita todos os parâmetros da Render API (url, user_agent, timeout, wait_until, delay, wait_for_selector, block_resources, headers, cookies, callback_url, bypass_cache, cache_ttl_seconds, async), além de dois campos exclusivos do Extract:
Quando a página já possui schema.org JSON-LD, enable_llm é ineficaz — o mapper determinístico retorna resultados diretamente, nunca desperdiçando chamadas LLM. Você obtém resultados tipificados sem custo.

Resposta Sincrona

Campos de Nível Superior

Subcampos de data.structured

Escopo do Mapeador schema.org

Ordenado por prioridade (quando atingido, é considerado structured.schemaOrg.primary): Processamento do mapeador:
  • Contêiner @graph (expansão recursiva);
  • Array @type (como ["Recipe", "NewsArticle"] — ambos reconhecidos, prevalece o de maior prioridade);
  • Variações de prefixo http://schema.org/;
  • Offer e AggregateOffer aninhados (o último lê lowPrice);
  • URLs de imagem relativas (resolvidas como absolutas por finalUrl).

Schema tipificado LLM

Quando enable_llm: true e schema.org não tem primary, o extrator usa heurísticas de URL (ou dicas de expected_type) para selecionar um dos modelos de validação Zod abaixo: Quando LLM é bem-sucedido, também fará um preenchimento “last-resort” nos campos de nível superior:
  • articledescription / byline / publishedAt / language
  • productdescription
  • discussiondescription (primeiros 280 caracteres do body) / byline (igual a author) / publishedAt (igual a postedAt)
  • recipedescription / byline (igual a author)
  • videodescription / byline (igual a channel) / publishedAt (igual a uploadDate)
  • jobdescription / byline (igual a company) / publishedAt (igual a datePosted)
O preenchimento só é acionado quando a fonte de dados determinística não preenche os campos correspondentes — LLM é sempre a última linha de defesa.

Cache

Solicitações idênticas serão hashadas para a mesma chave Redis: webextrator:cache:extract:<sha256(canonical-json)>. A chave de cache ignora async, bypass_cache, cache_ttl_seconds (este é um interruptor de operação, não afeta a resposta). cookies / headers serão armazenados em cache separadamente. Respostas que atingem o cache incluirão data.cached: true e data.cacheStoredAt: <unix-ms>.

Modo assíncrono e callbacks

Defina async: true para entrar no modo assíncrono (fornecer callback_url também fará a transição automaticamente). A plataforma retorna imediatamente (HTTP 200):
Quando a tarefa for concluída, o envelope completo será enviado via POST para seu callback_url (se configurado). Você também pode consultar ativamente através de /webextrator/tasks.

Exemplo

1. Artigo da Wikipedia (schema.org atingido, não precisa de LLM)

Campo chave data.structured.schemaOrg.primary:

2. Página de produto BestBuy (schema.org hit)

schema.org extraído:

3. Página de receita AllRecipes (incluindo nutrição e etapas)

schema.org extraído:

4. Página de discussão HN (sem JSON-LD — precisa ativar LLM)

data.structured.llm.data:
Os campos de nível superior também foram preenchidos: byline = "alice"publishedAt = "..."

5. Página de produto Amazon (Amazon sem JSON-LD — precisa ativar LLM)

data.structured.llm.data (tipificado product):

Python (requests)

Node.js (fetch)

Dicas e armadilhas

  • Se puder passar expected_type, passe. Dica gratuita, pule a avaliação heurística, especialmente útil para páginas cujo padrão de URL não está na lista interna.
  • enable_llm: true em páginas com schema.org hit é gratuito. O LLM só é chamado quando não há primary em schema.org, então deixá-lo ativado é seguro.
  • Ao depurar, verifique primeiro rawSignals.hasJsonLd. Se for true, mas structured.schemaOrg.primary for null, significa que a página usou um @type que nosso mapeador ainda não cobriu — abra uma issue, nós adicionamos.
  • structured.llmError é informativo. A solicitação ainda é bem-sucedida, e o resultado heurístico ainda é retornado. Veja llmError.error para localizar a causa (timeout, falha na análise JSON, falha na validação Zod).
  • Os links[] de páginas que não são artigos não serão ordenados por relevância. Apenas “limite de 100 itens + filtragem de protocolos inválidos” será feito.
  • O cache também é cobrado. O cache é para latência e proteção do pool de navegadores, não para economizar dinheiro.