Naar hoofdinhoud gaan

Documentation Index

Fetch the complete documentation index at: https://docs.olostep.com/llms.txt

Use this file to discover all available pages before exploring further.

Via de Olostep /v1/scrapes endpoint kun je LLM-vriendelijke Markdown, HTML, tekst, screenshots of gestructureerde JSON in real-time van elke URL extraheren.
  • Levert schone markdown, gestructureerde data, screenshots of html op
  • Extraheer JSON via Parsers of LLM-extractie
  • Behandelt dynamische inhoud: door js-gerenderde sites, inlogstromen via acties, PDF’s
Voor API-details zie de Scrape Endpoint API Referentie.

Een URL Scrapen

Gebruik de /v1/scrapes endpoint om een enkele URL te scrapen en kies uitvoerformaten.

Installatie

pip install olostep

Gebruik

Je kunt de endpoint gebruiken om een enkele URL te scrapen en uitvoerformaten te kiezen. De verplichte parameters zijn url_to_scrape en formats. Enkele andere veelvoorkomende parameters zijn wait_before_scraping (in milliseconden), remove_css_selectors (standaard, geen, of een array van selectors), en country.
from olostep import Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

result = client.scrapes.create(
    url_to_scrape="https://en.wikipedia.org/wiki/Alexander_the_Great",
    formats=["markdown", "html"],
)

print(result.markdown_content)
print(result.html_content)

Antwoord

De API retourneert een scrape object als antwoord. De scrape heeft enkele eigenschappen zoals id en result. Het result object heeft de volgende velden (afhankelijk van de formats parameter kunnen sommige null zijn):
  • html_content: de HTML-inhoud van de pagina. Geef formats: ["html"] door om dit te krijgen.
  • markdown_content: de MD-inhoud van de pagina. Geef formats: ["markdown"] door om dit te krijgen.
  • text_content: de tekstinhoud van de pagina. Geef formats: ["text"] door om dit te krijgen.
  • json_content: de JSON-inhoud van de pagina. Geef formats: ["json"] door om dit te krijgen en geef ook een parser of llm_extract parameter op.
  • screenshot_hosted_url: de gehoste URL van de screenshot.
  • html_hosted_url: de gehoste URL van de HTML-inhoud
  • markdown_hosted_url: de gehoste URL van de Markdown-inhoud
  • json_hosted_url: de gehoste URL van de JSON-inhoud
  • text_hosted_url: de gehoste URL van de tekstinhoud
  • links_on_page: de links op de pagina
  • page_metadata: de metadata van de 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": "" }
  }
}

Scrape Formaten

Kies een of meer uitvoerformaten via formats:
  • markdown: LLM-vriendelijke markdown
  • html: schoongemaakte HTML
  • text: platte tekst
  • json: gestructureerde uitvoer (via parser of llm_extract)
  • raw_pdf: ruwe PDF-bytes geëxtraheerd naar gehoste URL
  • screenshot: ingesteld via acties om een screenshot te maken en een gehoste URL te retourneren
Uitvoer sleutels worden binnen result geretourneerd als *_content velden en een *_hosted_url ook.

Gestructureerde data extraheren

Je kunt gestructureerde JSON op twee manieren extraheren: met behulp van Parsers of LLM-extractie.

Een Parser gebruiken (aanbevolen voor schaal)

Definieer formats: ["json"] en geef een parser id.
from olostep import Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

result = client.scrapes.create(
    url_to_scrape="https://www.google.com/search?q=alexander+the+great&gl=us&hl=en",
    formats=["json"],
    parser="@olostep/google-search",
)

print(result.json_content)
Olostep heeft een paar vooraf gebouwde parsers voor populaire websites, maar je kunt ook je eigen parsers maken via het dashboard of ons team vragen om het voor je te doen. Parsers zijn zelfherstellend en zullen zichzelf bijwerken naar de nieuwste versie van de website.

LLM-extractie gebruiken (schema en/of prompt)

Geef llm_extract met een JSON Schema (schema) en/of een natuurlijke taal instructie (prompt). Je kunt beide parameters doorgeven, maar als beide zijn opgegeven, heeft schema voorrang. Als je in plaats daarvan alleen een prompt doorgeeft, zal de LLM de data extraheren op basis van de prompt en zelf de datastructuur bepalen.
from olostep import LLMExtract, Olostep

client = Olostep(api_key="YOUR_REAL_KEY")

result = client.scrapes.create(
    url_to_scrape="https://www.berklee.edu/events/stefano-marchese-friends",
    formats=["markdown", "json"],
    llm_extract=LLMExtract(
        schema={
            "event": {
                "type": "object",
                "properties": {
                    "title": {"type": "string"},
                    "date": {"type": "string"},
                    "description": {"type": "string"},
                    "venue": {"type": "string"},
                    "address": {"type": "string"},
                    "start_time": {"type": "string"},
                },
            }
        }
    ),
)

print(result.json_content)
Opmerking: result.json_content retourneert een geserialiseerde JSON. Parseer het in je code als je een object nodig hebt.

Interactie met de pagina met Acties

Voer acties uit voordat je gaat scrapen om te interageren met dynamische sites. Ondersteunde acties:
  • wait met milliseconds
  • click met selector
  • fill_input met selector en value
  • scroll met direction en amount
Het is vaak nuttig om wait te gebruiken voor/na andere acties om de pagina te laten laden.

Voorbeeld

from olostep import FillInputAction, Olostep, WaitAction

client = Olostep(api_key="YOUR_REAL_KEY")

result = client.scrapes.create(
    url_to_scrape="https://example.com/login",
    formats=["markdown"],
    actions=[
        FillInputAction(selector="input[type=email]", value="john@example.com"),
        WaitAction(milliseconds=500),
        FillInputAction(selector="input[type=password]", value="secret"),
        {"type": "click", "selector": "button[type=\"submit\"]"},
        WaitAction(milliseconds=1500),
    ],
)

print(result.markdown_content)
Het antwoord zal alle gevraagde formaten bevatten (bijv. markdown_content).

Gebruiksscenario’s

Hieronder staan enkele praktische toepassingen van klanten die de /scrapes endpoint gebruiken.

Inhoudsanalyse & Onderzoek

  • Concurrentieanalyse: Productdetails, prijzen en functies van concurrentenwebsites extraheren
  • Marktonderzoek: Landingspagina’s, productbeschrijvingen en klantgetuigenissen analyseren
  • Academisch Onderzoek: Specifieke gegevens verzamelen van wetenschappelijke publicaties of onderzoeksportalen
  • Juridische Documentatie: Casestudy’s, regelgeving of juridische precedenten van officiële websites extraheren

E-commerce & Retail

  • Dynamische Prijsstrategieën: Realtime productprijzen van concurrerende winkels verkrijgen
  • Productinformatiebeheer: Gedetailleerde specificaties en beschrijvingen extraheren
  • Voorraad/Inventaris Monitoring: Productbeschikbaarheid bij andere retailers controleren
  • Review Analyse: Consumentenfeedback en sentiment voor specifieke producten verzamelen

Marketing & Contentcreatie

  • Contentcuratie: Relevante artikelen en blogposts voor nieuwsbrieven extraheren
  • SEO Analyse: Het gebruik van zoekwoorden, metabeschrijvingen en paginavormgeving van concurrenten onderzoeken
  • Leadgeneratie: Contactinformatie van bedrijvengidsen of bedrijfspagina’s extraheren
  • Influencer Onderzoek: Betrokkenheidsstatistieken en contentstijlen van influencerprofielen verzamelen
  • Gepersonaliseerde Social Media generatie: AI-gestuurde social media marketing creëren door klantwebsites te analyseren

Data Toepassingen

  • AI Trainingsdata Verzameling: Specifieke voorbeelden verzamelen voor machine learning modellen
  • Aangepaste Kennisbank Bouwen: Documentatie of instructies van softwarewebsites extraheren
  • Historische Data Archieven: Website-inhoud op specifieke tijdstippen bewaren
  • Gestructureerde Data Extractie: Webinhoud omzetten in geformatteerde datasets voor analyse

Monitoring & Alerts

  • Regelgevingsnaleving Monitoring: Wijzigingen op juridische of regelgevende websites volgen
  • Crisisbeheer: Nieuwswebsites monitoren voor vermeldingen van specifieke gebeurtenissen of organisaties
  • Evenement Volgen: Details over aankomende evenementen van locatie- of organisatorenwebsites extraheren
  • Service Status Monitoring: Servicestatuspagina’s controleren voor specifieke platforms of tools

Publicatie & Media

  • Nieuwsaggregatie: Breaking news van officiële bronnen extraheren
  • Mediamonitoring: Specifieke onderwerpen op nieuwswebsites volgen
  • Contentverificatie: Informatie extraheren om claims of uitspraken te controleren
  • Multimedia Extractie: Ingebedde video’s, afbeeldingen of audio voor mediatheken verzamelen

Financiële Toepassingen

  • Beleggingsonderzoek: Financiële overzichten of jaarverslagen van bedrijfswebsites extraheren
  • Economische Indicatoren: Economische data van overheids- of financiële instellingenwebsites verzamelen
  • Cryptocurrency Data: Realtime prijs- en marktkapitalisatie-informatie extraheren
  • Financieel Nieuws Analyse: Financiële nieuwssites monitoren voor specifieke marktsignalen

Technische Toepassingen

  • API Documentatie Extractie: Technische documentatie voor referentie verzamelen
  • Integratietesten: Website-elementen extraheren om derde partij integraties te verifiëren
  • Toegankelijkheidstesten: Website-structuur analyseren voor naleving van toegankelijkheidsnormen
  • Webarchief Creatie: Volledige website-inhoud vastleggen voor historische bewaring

Integratie Scenario’s

  • CRM Systemen: Klantprofielen verrijken met data van bedrijfswebsites of Linkedin
  • Content Management Systemen: Relevante externe content importeren
  • Business Intelligence Tools: Interne data aanvullen met externe marktinformatie
  • Project Management Software: Specificaties of vereisten van klantwebsites extraheren
  • Aangepaste Dashboards: Geëxtraheerde data naast interne statistieken weergeven

Foutafhandeling

Alle fouten volgen een gedeelde envelopvorm. Controleer error.type en error.code om programmatisch te vertakken:
{
  "id": "error_abc123",
  "object": "error",
  "created": 1745673871,
  "url": "https://example.com",
  "metadata": {},
  "error": {
    "type": "...",
    "code": "...",
    "message": "..."
  }
}
HTTPerror.typeerror.codeBetekenis
400invalid_request_errordns_resolution_failedHet domein bestaat niet of de URL bevat een typfout.
400invalid_request_errorinvalid_urlDe URL is verkeerd gevormd.
502invalid_request_errortls_errorDe website heeft een ongeldig of incompatibel TLS/SSL-certificaat. error.detail bevat de laag-niveau SSL-code.
504request_timeoutscrape_poll_timeoutDe scrape is niet binnen het ~55-seconden wachttijd budget voltooid.

DNS-fout (400)

Het domein lost niet op. Controleer de URL op typfouten.
{
  "error": {
    "type": "invalid_request_error",
    "code": "dns_resolution_failed",
    "message": "De URL bevat een typfout, of het domein bestaat niet."
  }
}

TLS/SSL-fout (502)

De doelwebsite heeft een gebroken of incompatibele HTTPS-configuratie. error.detail biedt de specifieke SSL-foutcode voor diagnostiek; error.code is altijd tls_error.
{
  "error": {
    "type": "invalid_request_error",
    "code": "tls_error",
    "detail": "err_ssl_tlsv1_alert_internal_error",
    "message": "De website heeft de TLS-handshake gesloten of geweigerd. De server kan verkeerd geconfigureerd zijn of een niet-ondersteunde SSL/TLS-versie gebruiken."
  }
}

Verzoek time-out (504)

De scrape is niet voltooid binnen het wachttijd budget. De pagina kan traag zijn, bot-beschermd, of tijdelijk niet beschikbaar. Dit antwoord is veilig om opnieuw te proberen.
{
  "error": {
    "type": "request_timeout",
    "code": "scrape_poll_timeout",
    "message": "Verzoek is verlopen tijdens het wachten op scrape resultaat. De pagina kan traag zijn, geblokkeerd voor onze fetchers, of tijdelijk niet beschikbaar."
  }
}

Prijzen

Scrape kost standaard 1 credit. Als je ook parsers doorgeeft, variëren de kosten per parser (1-5 credits). Als je LLM extract gebruikt, kost het 20 credits.