Vai al contenuto principale
Attraverso l’endpoint /v1/scrapes di Olostep puoi estrarre Markdown, HTML, testo, screenshot o JSON strutturato da qualsiasi URL in tempo reale.
  • Produce markdown pulito, dati strutturati, screenshot o html
  • Estrai JSON tramite Parsers o estrazione LLM
  • Gestisce contenuti dinamici: siti resi con js, flussi di login tramite azioni, PDF
Per i dettagli dell’API, consulta la Riferimento API dell’Endpoint Scrape.

Scraping di un URL

Usa l’endpoint /v1/scrapes per eseguire lo scraping di un singolo URL e scegliere i formati di output.

Installazione

# pip install requests

import requests

Utilizzo

Puoi utilizzare l’endpoint per eseguire lo 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 (predefinito, nessuno o un array di selettori), e country.
import requests
import json

endpoint = "https://api.olostep.com/v1/scrapes"
payload = {
    "url_to_scrape": "https://en.wikipedia.org/wiki/Alexander_the_Great",
    "formats": ["markdown", "html"]
}
headers = {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
}

response = requests.post(endpoint, json=payload, headers=headers)
print(json.dumps(response.json(), indent=2))

Risposta

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
  • links_on_page: i link sulla pagina
  • page_metadata: i metadati della pagina
{
  "id": "scrape_6h89o8u1kt",
  "object": "scrape",
  "created": 1745673871,
  "metadata": {},
  "retrieve_id": "6h89o8u1kt",
  "url_to_scrape": "https://en.wikipedia.org/wiki/Alexander_the_Great",
  "result": {
    "html_content": "<html...",
    "markdown_content": "## Alexander the Great...",
    "text_content": null,
    "json_content": null,
    "screenshot_hosted_url": null,
    "html_hosted_url": "https://olostep-storage.s3.us-east-1.amazonaws.com/text_6h89o8u1kt.txt",
    "markdown_hosted_url": "https://olostep-storage.s3.us-east-1.amazonaws.com/markDown_6h89o8u1kt.txt",
    "json_hosted_url": null,
    "text_hosted_url": null,
    "links_on_page": [],
    "page_metadata": { "status_code": 200, "title": "" }
  }
}

Formati di Scrape

Scegli uno o più formati di output tramite formats:
  • markdown: markdown compatibile con LLM
  • html: HTML pulito
  • text: testo semplice
  • json: output strutturato (tramite parser o llm_extract)
  • raw_pdf: byte PDF grezzi estratti a un URL ospitato
  • screenshot: impostato tramite azioni per catturare uno screenshot e restituire un URL ospitato
Le chiavi di output vengono restituite all’interno di result come campi *_content e anche un *_hosted_url.

Estrai dati strutturati

Puoi estrarre JSON strutturato in due modi: utilizzando Parsers o estrazione LLM.

Utilizzando un Parser (consigliato per la scalabilità)

Definisci formats: ["json"] e fornisci un id del parser.
import requests, json

endpoint = "https://api.olostep.com/v1/scrapes"
payload = {
  "url_to_scrape": "https://www.google.com/search?q=alexander+the+great&gl=us&hl=en",
  "formats": ["json"],
  "parser": { 
    "id": "@olostep/google-search" 
  }
}
headers = {
    "Authorization": "Bearer <YOUR_API_KEY>", 
    "Content-Type": "application/json"
}

res = requests.post(endpoint, json=payload, headers=headers)
print(json.dumps(res.json(), indent=2))
Olostep ha alcuni parser pre-costruiti per siti web popolari ma puoi anche creare i tuoi parser tramite la dashboard o chiedere al nostro team di farlo per te. I parser sono auto-riparanti e si aggiorneranno all’ultima versione del sito web.

Utilizzando l’estrazione LLM (schema e/o prompt)

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, lo schema ha la precedenza. Invece, se passi solo un prompt, l’LLM estrarrà i dati basandosi sul prompt e deciderà la struttura dei dati autonomamente.
import requests, json

endpoint = "https://api.olostep.com/v1/scrapes"
payload = {
  "url_to_scrape": "https://www.berklee.edu/events/stefano-marchese-friends",
  "formats": ["markdown", "json"],
  "llm_extract": {
    "schema": {
      "event": {
        "type": "object",
        "properties": {
          "title": {"type": "string"},
          "date": {"type": "string"},
          "description": {"type": "string"},
          "venue": {"type": "string"},
          "address": {"type": "string"},
          "start_time": {"type": "string"}
        }
      }
    }
  }
}
headers = {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
}
res = requests.post(endpoint, json=payload, headers=headers)
print(json.dumps(res.json(), indent=2))
Nota: result.json_content restituisce un JSON stringificato. Analizzalo nel tuo codice se hai bisogno di un oggetto.

Interagire con la pagina con Azioni

Esegui azioni prima dello scraping per interagire con siti dinamici. Azioni supportate:
  • wait con milliseconds
  • click con selector
  • fill_input con selector e value
  • scroll con direction e amount
È spesso utile usare wait prima/dopo altre azioni per permettere il caricamento della pagina.

Esempio

import requests, json

endpoint = "https://api.olostep.com/v1/scrapes"
payload = {
  "url_to_scrape": "https://example.com/login",
  "formats": ["markdown"],
  "actions": [
    {"type": "fill_input", "selector": "input[type=email]", "value": "john@example.com"},
    {"type": "wait", "milliseconds": 500},
    {"type": "fill_input", "selector": "input[type=password]", "value": "secret"},
    {"type": "click", "selector": "button[type=\"submit\"]"},
    {"type": "wait", "milliseconds": 1500}
  ]
}
headers = {
    "Authorization": "Bearer <YOUR_API_KEY>", 
    "Content-Type": "application/json"
}
res = requests.post(endpoint, json=payload, headers=headers)
print(json.dumps(res.json(), indent=2))
La risposta includerà qualsiasi formato richiesto (ad esempio, markdown_content).

Casi d’Uso

Di seguito sono riportate alcune applicazioni pratiche di clienti che utilizzano l’endpoint /scrapes.

Analisi dei Contenuti & Ricerca

  • Analisi Competitiva: Estrai dettagli di prodotto, prezzi e caratteristiche dai siti dei concorrenti
  • Ricerca di Mercato: Analizza landing page, descrizioni di prodotto e testimonianze dei clienti
  • Ricerca Accademica: Raccogli dati specifici da pubblicazioni scientifiche o portali di ricerca
  • Documentazione Legale: Estrai studi di caso, regolamenti o precedenti legali da siti ufficiali

E-commerce & Retail

  • Strategie di Prezzi Dinamici: Ottieni prezzi dei prodotti in tempo reale dai negozi concorrenti
  • Gestione delle Informazioni sui Prodotti: Estrai specifiche dettagliate e descrizioni
  • Monitoraggio Stock/Inventario: Controlla la disponibilità dei prodotti presso altri rivenditori
  • Analisi delle Recensioni: Raccogli feedback dei consumatori e sentiment per prodotti specifici

Marketing & Creazione di Contenuti

  • Curazione di Contenuti: Estrai articoli e post di blog rilevanti per newsletter
  • Analisi SEO: Esamina l’uso delle parole chiave dei concorrenti, meta descrizioni e struttura della pagina
  • Generazione di Lead: Estrai informazioni di contatto da directory aziendali o pagine aziendali
  • Ricerca di Influencer: Raccogli metriche di coinvolgimento e stili di contenuto dai profili degli influencer
  • Generazione Personalizzata di Social Media: Crea marketing sui social media alimentato da AI analizzando i siti web dei clienti

Applicazioni di Dati

  • Raccolta Dati per l’Addestramento AI: Raccogli esempi specifici per modelli di machine learning
  • Costruzione di Basi di Conoscenza Personalizzate: Estrai documentazione o istruzioni da siti software
  • Archivi Storici di Dati: Preserva il contenuto del sito web in momenti specifici
  • Estrazione di Dati Strutturati: Trasforma il contenuto web in dataset formattati per l’analisi

Monitoraggio & Avvisi

  • Monitoraggio della Conformità Normativa: Traccia le modifiche ai siti web legali o normativi
  • Gestione delle Crisi: Monitora i siti di notizie per menzioni di eventi o organizzazioni specifiche
  • Tracciamento degli Eventi: Estrai dettagli su eventi imminenti da siti di sedi o organizzatori
  • Monitoraggio dello Stato del Servizio: Controlla le pagine di stato del servizio per piattaforme o strumenti specifici

Pubblicazione & Media

  • Aggregazione di Notizie: Estrai notizie dell’ultima ora da fonti ufficiali
  • Monitoraggio dei Media: Traccia argomenti specifici su siti di notizie
  • Verifica dei Contenuti: Estrai informazioni per verificare affermazioni o dichiarazioni
  • Estrazione Multimediale: Raccogli video, immagini o audio incorporati per librerie multimediali

Applicazioni Finanziarie

  • Ricerca sugli Investimenti: Estrai bilanci o rapporti annuali dai siti web aziendali
  • Indicatori Economici: Raccogli dati economici da siti web governativi o istituzioni finanziarie
  • Dati sulle Criptovalute: Estrai prezzi in tempo reale e informazioni sulla capitalizzazione di mercato
  • Analisi delle Notizie Finanziarie: Monitora i siti di notizie finanziarie per segnali di mercato specifici

Applicazioni Tecniche

  • Estrazione della Documentazione API: Raccogli documentazione tecnica per riferimento
  • Test di Integrazione: Estrai elementi del sito web per verificare integrazioni di terze parti
  • Test di Accessibilità: Analizza la struttura del sito web per la conformità agli standard di accessibilità
  • Creazione di Archivi Web: Cattura il contenuto completo del sito web per la conservazione storica

Scenari di Integrazione

  • Sistemi CRM: Migliora i profili dei clienti con dati dai siti web aziendali o Linkedin
  • Sistemi di Gestione dei Contenuti: Importa contenuti esterni rilevanti
  • Strumenti di Business Intelligence: Integra dati interni con informazioni di mercato esterne
  • Software di Gestione Progetti: Estrai specifiche o requisiti dai siti web dei clienti
  • Dashboard Personalizzati: Visualizza dati estratti insieme a metriche interne

Prezzi

Scrape costa 1 credito di default. Se passi anche parsers, i costi variano per parser (1-5 crediti). Se usi LLM extract, costa 20 crediti.