POST https://api.acedata.cloud/webextrator/extract
L’API di estrazione intelligente WebExtrator converte un URL in risultati strutturati tipizzati — articoli, prodotti, ricette, video, discussioni, assunzioni, ecc., fornendo anche Markdown e testo semplice puliti. Quando desideri “dati strutturati puliti” invece di HTML grezzo, questo è l’interfaccia da utilizzare.
Alla base c’è una pipeline a tre livelli:
- Mapper JSON-LD schema.org — deterministico, costo zero di LLM. Copre Wikipedia / BestBuy / AllRecipes / YouTube / la maggior parte delle notizie / la maggior parte delle pagine prodotto.
- Estrazione LLM tipizzata — attivata solo quando schema.org non è colpito. Seleziona Schema in base al tipo di pagina, verifica rigorosa Zod.
- Readability + Markdown come fallback — sempre in esecuzione, completa i campi di livello superiore non riempiti dalle prime due fasi.
Processo di richiesta
Per utilizzare la pagina del servizio WebExtrator, prima vai al Pannello di controllo di Ace Data Cloud per ottenere il tuo API Token, da conservare per uso futuro.
Se non hai ancora effettuato il login o la registrazione, verrai automaticamente reindirizzato alla pagina di accesso che ti invita a registrarti e accedere; una volta completato, verrai riportato automaticamente alla pagina corrente.
Un API Token è sufficiente per chiamare tutti i servizi della piattaforma, senza bisogno di richiederne uno separato per ogni servizio. La prima richiesta ti darà un credito gratuito, per un’esperienza gratuita; quando il credito è insufficiente, puoi ricaricare il saldo generale nel pannello di controllo.
📘 Documentazione completa: Pagina del servizio WebExtrator →
Autenticazione
Parametri di richiesta
Extract accetta tutti i parametri Render API (url, user_agent, timeout, wait_until, delay, wait_for_selector,
block_resources, headers, cookies, callback_url, bypass_cache,
cache_ttl_seconds, async), più due campi esclusivi di Extract:
Quando la pagina ha schema.org JSON-LD, enable_llm è inefficace — il mapper deterministico restituisce direttamente il risultato, non sprecherà mai una chiamata LLM. Ottieni gratuitamente risultati tipizzati.
Risposta sincrona
Campi di livello superiore
Sottocampi di data.structured
Copertura del mapper schema.org
Ordinato per priorità (il primo colpo è consideratostructured.schemaOrg.primary):
Elaborazione del mapper:
- Contenitore
@graph(espansione ricorsiva); - Array
@type(come["Recipe", "NewsArticle"]— entrambi riconosciuti, prevale il primo); - Varianti con prefisso
http://schema.org/; OffereAggregateOfferannidati (quest’ultimo leggelowPrice);- URL delle immagini relative (risolte in assoluto secondo
finalUrl).
Schema tipizzato LLM
Quandoenable_llm: true e schema.org non ha primary, l’estrattore utilizza euristiche basate sull’URL
(o suggerimenti expected_type) per selezionare uno dei modelli di output di Zod Schema:
In caso di successo, LLM riempirà anche i campi di livello superiore come “ultima risorsa”:
article→description/byline/publishedAt/languageproduct→descriptiondiscussion→description(primi 280 caratteri del body) /byline(uguale a author) /publishedAt(uguale a postedAt)recipe→description/byline(uguale a author)video→description/byline(uguale a channel) /publishedAt(uguale a uploadDate)job→description/byline(uguale a company) /publishedAt(uguale a datePosted)
Cache
Richieste identiche verranno hashate nello stesso Redis Key:webextrator:cache:extract:<sha256(canonical-json)>. La chiave di cache ignora async,
bypass_cache, cache_ttl_seconds (questo è un interruttore operativo, non influisce sulla risposta). cookies /
headers verranno memorizzati in cache separatamente.
Le risposte che colpiscono la cache porteranno
data.cached: true e data.cacheStoredAt: <unix-ms>.
Modalità asincrona e callback
Impostareasync: true per entrare in modalità asincrona (fornire callback_url attiverà automaticamente). La piattaforma restituisce immediatamente (HTTP 200):
POST al tuo callback_url (se configurato). Puoi anche
consultare attivamente tramite /webextrator/tasks.
Esempio
1. Articolo di Wikipedia (schema.org colpito, non è necessario LLM)
data.structured.schemaOrg.primary:
2. Pagina prodotto BestBuy (schema.org colpito)
3. Pagina ricetta AllRecipes (con nutrizione e passaggi)
4. Pagina di discussione HN (senza JSON-LD —— necessità di abilitare LLM)
data.structured.llm.data:
byline = "alice"、publishedAt = "..."。
5. Pagina prodotto Amazon (Amazon senza JSON-LD —— necessità di abilitare LLM)
data.structured.llm.data (tipizzato product):
Python (requests)
Node.js (fetch)
Suggerimenti e problemi
- Se puoi passare
expected_type, fallo. Suggerimento gratuito, salta il giudizio euristico, particolarmente utile per le pagine il cui modello URL non è nella lista incorporata. enable_llm: trueè gratuito sulle pagine colpite da schema.org. LLM viene chiamato solo quando non c’è un primario in schema.org, quindi è sicuro tenerlo attivato di default.- Durante il debug, controlla prima
rawSignals.hasJsonLd. Se ètruemastructured.schemaOrg.primaryènull, significa che la pagina ha utilizzato un tipo@typeche il nostro mapper non ha ancora coperto —— apri un issue, lo aggiungeremo. structured.llmErrorè informativo. La richiesta ha comunque successo, il risultato euristico viene restituito. ControllallmError.errorper individuare la causa (timeout, errore di parsing JSON, errore di validazione Zod).- I
links[]non articoli non saranno ordinati per rilevanza. Solo secondo “fino a 100 voci + filtraggio dei protocolli non validi” si cerca di pulire. - Le cache colpite vengono comunque addebitate. La cache serve per ritardi e per proteggere il pool del browser, non per risparmiare.

