Puoi usare l’endpoint per fare scraping di un singolo URL e scegliere i formati di output. I parametri obbligatori sono url_to_scrape e formats.Altri parametri comuni sono wait_before_scraping (in millisecondi), remove_css_selectors (default, nessuno, o un array di selettori), e country.
L’API restituisce un oggetto scrape in risposta.Lo scrape ha alcune proprietà come id e result.L’oggetto result ha i seguenti campi (secondo il parametro formats alcuni potrebbero essere nulli):
html_content: il contenuto HTML della pagina. Passa formats: ["html"] per ottenere questo.
markdown_content: il contenuto MD della pagina. Passa formats: ["markdown"] per ottenere questo.
text_content: il contenuto testuale della pagina. Passa formats: ["text"] per ottenere questo.
json_content: il contenuto JSON della pagina. Passa formats: ["json"] per ottenere questo e fornisci anche un parametro parser o llm_extract.
screenshot_hosted_url: l’URL ospitato dello screenshot.
html_hosted_url: l’URL ospitato del contenuto HTML
markdown_hosted_url: l’URL ospitato del contenuto Markdown
json_hosted_url: l’URL ospitato del contenuto JSON
text_hosted_url: l’URL ospitato del contenuto testuale
Quando viene richiesto uno scrape, Olostep verifica se esiste già uno scrape corrispondente con gli stessi parametri. Se viene trovato un match abbastanza recente, il contenuto viene servito istantaneamente dallo storage di Olostep senza avviare un nuovo browser scrape.
Cache Condivisa: La cache è condivisa a livello globale. Se un’altra richiesta ha fatto scraping dello stesso URL con la stessa configurazione entro la tua finestra di freschezza, benefici della velocità.
Post-elaborazione è ancora live: Operazioni come llm_extract e filtri links_on_page vengono eseguite al volo sul documento memorizzato nella cache. Memorizzi solo il recupero della pagina principale, mantenendo le tue estrazioni strutturate dinamiche.
Per impostazione predefinita, l’API di produzione esegue sempre uno scrape live per garantire l’accuratezza in tempo reale. Puoi optare per la memorizzazione nella cache utilizzando il parametro max_age.
Parametro
Tipo
Default
Descrizione
max_age
integer
0
Età accettabile del contenuto in secondi. Se esiste una copia memorizzata nella cache più recente di max_age secondi, viene servita dalla cache.
Comportamento Predefinito dell’API (max_age: 0): Ogni richiesta API attiva uno scrape fresco.
Comportamento Predefinito del Playground: Nel dashboard playground, max_age predefinito è di 24 ore (86400 secondi) per prevenire scrape ridondanti e risparmiare crediti mentre costruisci e testi.
Età Massima: La cache ha un limite massimo di 7 giorni (604800 secondi). Qualsiasi max_age richiesto sopra questo limite ricadrà su un massimo di 7 giorni.
from olostep import Olostepclient = Olostep(api_key="YOUR_REAL_KEY")# Opt-in al caching: Accetta risultati fino a 1 giorno (86400 secondi) vecchiresult = client.scrapes.create( url_to_scrape="https://example.com", formats=["markdown"], max_age=86400)
La cache viene automaticamente bypassata (forzando uno scrape live) per funzionalità che richiedono sessioni uniche, output visivi in tempo reale o gestione di file personalizzati:
Sessioni interattive: Richieste che utilizzano session_id o caricano un context del browser personalizzato.
Visuali: Strumenti di visualizzazione e screenshot (htmlVisualizer).
Tipi di file speciali: Download di file binari o rendering di PDF grezzi.
Debugging & Rete: Cattura di network_calls o utilizzo di lavori di parser asincroni.
include_links / exclude_links: modelli glob abbinati al path dell’URL di ciascun link.
query_to_order_links_by: riordina i link restituiti in base alla rilevanza rispetto a questo testo.
I modelli glob abbinano segmenti di percorso. Un singolo * non attraversa /, quindi "/blog/*" corrisponde a "/blog/post-1" ma non all’indice "/blog" stesso — e non corrisponde mai a "/blog?tag=x" perché le stringhe di query non fanno parte del percorso. Per includere anche l’indice, usa "/blog*" o "{/blog,/blog/**}".
Olostep ha alcuni parser pre-costruiti per siti web popolari ma puoi anche creare i tuoi parser tramite il dashboard o chiedere al nostro team di farlo per te.I parser sono auto-riparanti e si aggiorneranno all’ultima versione del sito web.
Fornisci llm_extract con uno Schema JSON (schema) e/o un’istruzione in linguaggio naturale (prompt). Puoi passare entrambi i parametri, ma se entrambi sono forniti, schema ha la precedenza.In alternativa, se passi solo un prompt, l’LLM estrarrà i dati in base al prompt e deciderà autonomamente la struttura dei dati.
Nota: result.json_content restituisce un JSON stringificato. Analizzalo nel tuo codice se hai bisogno di un oggetto.Prezzi:llm_extract costa 10 crediti per scrape. Per ridurre il costo, puoi portare le tue chiavi API o abilitare la tariffazione basata sull’uso. Contatta info@olostep.com per ottenere l’accesso.
Con l’opzione links_on_page, puoi estrarre tutti i link presenti sulla pagina che fai scraping. Accetta i seguenti parametri per aiutare a filtrare e ordinare i link estratti:
absolute_links (booleano, predefinito: true): Quando è vero, restituisce URL completi (es. https://example.com/page) invece di percorsi relativi (es. /page).
query_to_order_links_by (stringa): Ordina i link restituiti in base alla loro somiglianza con il testo della query fornita, dando priorità alle corrispondenze più rilevanti.
include_links (array di stringhe): Filtra i link estratti utilizzando modelli glob. Usa modelli come *.pdf per abbinare estensioni di file, /blog/* per percorsi specifici, o URL completi come https://example.com/*. Supporta caratteri jolly (*), classi di caratteri ([a-z]), e alternanza ({pattern1,pattern2}).
exclude_links (array di stringhe): Escludi link specifici utilizzando modelli glob, seguendo la stessa sintassi di include_links.
Il dominio non si risolve. Controlla l’URL per errori di battitura.
{ "error": { "type": "invalid_request_error", "code": "dns_resolution_failed", "message": "L'URL contiene un errore di battitura, o il dominio non esiste." }}
Il sito web di destinazione ha una configurazione HTTPS rotta o incompatibile. error.detail fornisce il codice di errore SSL specifico per la diagnostica; error.code è sempre tls_error.
{ "error": { "type": "invalid_request_error", "code": "tls_error", "detail": "err_ssl_tlsv1_alert_internal_error", "message": "Il sito web ha chiuso o rifiutato la stretta di mano TLS. Il server potrebbe essere configurato in modo errato o utilizzare una versione SSL/TLS non supportata." }}
Lo scrape non è stato completato entro il tempo di attesa. La pagina potrebbe essere lenta, protetta da bot o temporaneamente non disponibile. Questa risposta è sicura da riprovare.
{ "error": { "type": "request_timeout", "code": "scrape_poll_timeout", "message": "Richiesta scaduta mentre si attendeva il risultato dello scrape. La pagina potrebbe essere lenta, bloccata per i nostri fetcher, o temporaneamente non disponibile." }}