Naar hoofdinhoud gaan
Via de Olostep /v1/scrapes endpoint kun je LLM-vriendelijke Markdown, HTML, tekst, screenshots of gestructureerde JSON uit elke URL in real-time halen.
  • Levert schone markdown, gestructureerde data, screenshots of html
  • Haal JSON op 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 requests

import requests

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.
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))

Reactie

De API retourneert een scrape object als reactie. De scrape heeft een paar 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
Uitvoersleutels worden binnen result geretourneerd als *_content velden en een *_hosted_url ook.

Gestructureerde data extraheren

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

Een Parser gebruiken (aanbevolen voor schaal)

Definieer formats: ["json"] en geef een parser id.
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 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.
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))
Opmerking: result.json_content retourneert een geserialiseerde JSON. Parse het in je code als je een object nodig hebt.

Interactie met de pagina met Acties

Voer acties uit voordat je scrapt om te communiceren 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

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))
De reactie 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: Haal productdetails, prijzen en functies van concurrentenwebsites
  • Marktonderzoek: Analyseer landingspagina’s, productbeschrijvingen en klantgetuigenissen
  • Academisch Onderzoek: Verzamel specifieke data van wetenschappelijke publicaties of onderzoeksportalen
  • Juridische Documentatie: Haal casestudies, regelgeving of juridische precedenten van officiële websites

E-commerce & Detailhandel

  • Dynamische Prijsstrategieën: Verkrijg realtime productprijzen van concurrerende winkels
  • Product Informatie Management: Haal gedetailleerde specificaties en beschrijvingen op
  • Voorraad/Inventaris Monitoring: Controleer productbeschikbaarheid bij andere retailers
  • Review Analyse: Verzamel consumentenfeedback en sentiment voor specifieke producten

Marketing & Inhoud Creatie

  • Inhoud Curation: Haal relevante artikelen en blogposts voor nieuwsbrieven
  • SEO Analyse: Onderzoek het gebruik van trefwoorden, metabeschrijvingen en paginavormgeving van concurrenten
  • Leadgeneratie: Haal contactinformatie van bedrijvengidsen of bedrijfspagina’s
  • Influencer Onderzoek: Verzamel betrokkenheidsstatistieken en inhoudsstijlen van influencerprofielen
  • Gepersonaliseerde Social Media generatie: Creëer AI-gestuurde social media marketing door klantwebsites te analyseren

Data Toepassingen

  • AI Trainingsdata Verzameling: Verzamel specifieke voorbeelden voor machine learning modellen
  • Aangepaste Kennisbank Bouwen: Haal documentatie of instructies van softwarewebsites
  • Historische Data Archieven: Bewaar website-inhoud op specifieke momenten in de tijd
  • Gestructureerde Data Extractie: Transformeer webinhoud in geformatteerde datasets voor analyse

Monitoring & Alerts

  • Regelgevingsnaleving Monitoring: Volg wijzigingen op juridische of regelgevende websites
  • Crisisbeheer: Monitor nieuwssites voor vermeldingen van specifieke gebeurtenissen of organisaties
  • Evenementen Tracking: Haal details over aankomende evenementen van locatie- of organisatorenwebsites
  • Service Status Monitoring: Controleer servicestatuspagina’s voor specifieke platforms of tools

Publicatie & Media

  • Nieuws Aggregatie: Haal breaking news van officiële bronnen
  • Media Monitoring: Volg specifieke onderwerpen op nieuwssites
  • Inhoud Verificatie: Haal informatie op om claims of uitspraken te controleren
  • Multimedia Extractie: Verzamel ingesloten video’s, afbeeldingen of audio voor mediatheken

Financiële Toepassingen

  • Investering Onderzoek: Haal financiële overzichten of jaarverslagen van bedrijfswebsites
  • Economische Indicatoren: Verzamel economische data van overheids- of financiële instellingenwebsites
  • Cryptocurrency Data: Haal realtime prijs- en marktkapitalisatie-informatie op
  • Financiële Nieuws Analyse: Monitor financiële nieuwssites voor specifieke marktsignalen

Technische Toepassingen

  • API Documentatie Extractie: Verzamel technische documentatie voor referentie
  • Integratietesten: Haal website-elementen op om derde partij integraties te verifiëren
  • Toegankelijkheidstesten: Analyseer website-structuur voor naleving van toegankelijkheidsnormen
  • Webarchief Creatie: Leg volledige website-inhoud vast voor historische bewaring

Integratie Scenario’s

  • CRM Systemen: Verrijk klantprofielen met data van bedrijfswebsites of Linkedin
  • Content Management Systemen: Importeer relevante externe inhoud
  • Business Intelligence Tools: Vul interne data aan met externe marktinformatie
  • Project Management Software: Haal specificaties of vereisten van klantwebsites op
  • Aangepaste Dashboards: Toon geëxtraheerde data naast interne statistieken

Prijzen

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