PyPI Package: olostep | Vereisten: Python 3.11+
Installatie
Authenticatie
Verkrijg je API-sleutel via het Olostep Dashboard.Snelle Start
De SDK biedt twee clientopties afhankelijk van je gebruikssituatie:Sync Client (`Olostep`)
Beste voor: Scripts en eenvoudige gebruikssituaties waar je voorkeur geeft aan blokkerende operaties.
De sync client biedt een eenvoudigere, blokkerende interface die gemakkelijker is om mee te beginnen als je nieuw bent met async/await.
De sync client biedt een eenvoudigere, blokkerende interface die gemakkelijker is om mee te beginnen als je nieuw bent met async/await.
Async Client (`AsyncOlostep`)
Beste voor: Productietoepassingen en het verwerken van veel gelijktijdige verzoeken.
De async client biedt niet-blokkerende operaties en is de aanbevolen keuze voor productietoepassingen die hoge doorvoer nodig hebben.
De async client biedt niet-blokkerende operaties en is de aanbevolen keuze voor productietoepassingen die hoge doorvoer nodig hebben.
Sync Client (Olostep)
De sync client (Olostep) biedt een blokkerende interface die perfect is voor scripts en eenvoudige gebruikssituaties.
Basis Web Scraping
Batchverwerking
Slim Web Crawlen
Site Mapping
AI-aangedreven Antwoorden
Async Client (AsyncOlostep)
De async client (AsyncOlostep) is de aanbevolen client voor high-performance toepassingen, back-end services en wanneer je veel gelijktijdige verzoeken moet verwerken.
Basis Web Scraping
Batchverwerking
Slim Web Crawlen
Site Mapping
AI-aangedreven Antwoorden
SDK Referentie
Methode Structuur
Beide SDK-clients bieden dezelfde schone, pythonic interface georganiseerd in logische namespaces:| Namespace | Doel | Belangrijke Methoden |
|---|---|---|
scrapes | Enkelvoudige URL-extractie | create(), get() |
batches | Multi-URL verwerking | create(), info(), items() |
crawls | Website doorzoeken | create(), info(), pages() |
maps | Linkextractie | create(), urls() |
answers | AI-aangedreven extractie | create(), get() |
retrieve | Content ophalen | get() |
Foutafhandeling
Vang alle SDK-fouten op met behulp van de basis-exceptieklasse:Automatische Herhalingen
De SDK probeert automatisch opnieuw bij tijdelijke fouten (netwerkproblemen, tijdelijke serverproblemen) op basis van deRetryStrategy configuratie. Je kunt het herhalingsgedrag aanpassen door een RetryStrategy instantie door te geven bij het maken van de client:
Geavanceerde Functies
Slimme Input Coercion
De SDK behandelt intelligent verschillende invoerformaten voor maximaal gemak:Geavanceerde Scraping Opties
Batchverwerking met Aangepaste ID’s
Intelligente Crawling
Site Mapping met Filters
Antwoorden Ophalen
Content Ophalen
Logging
Schakel logging in om problemen op te sporen:INFO (aanbevolen), DEBUG (gedetailleerd), WARNING, ERROR
Retry Strategie Configuratie
DeRetryStrategy klasse controleert hoe de Olostep SDK omgaat met tijdelijke API-fouten door middel van automatische herhalingen met exponentiële backoff en jitter. Dit helpt om betrouwbare werking te garanderen in productieomgevingen waar tijdelijke netwerkproblemen, snelheidslimieten en serveroverbelasting intermitterende storingen kunnen veroorzaken.
Standaardgedrag
Standaard gebruikt de SDK de volgende herhalingsconfiguratie:- Maximale herhalingen: 5 pogingen
- Initiële vertraging: 2 seconden
- Backoff: Exponentieel (2^poging)
- Jitter: 10-90% van vertraging (willekeurig)
- Poging 1: Onmiddellijk
- Poging 2: ~2-3.6s vertraging
- Poging 3: ~4-7.2s vertraging
- Poging 4: ~8-14.4s vertraging
- Poging 5: ~16-28.8s vertraging
Aangepaste Configuratie
Wanneer Herhalingen Plaatsvinden
De SDK probeert automatisch opnieuw bij:- Tijdelijke serverproblemen (
OlostepServerError_TemporaryIssue) - Timeout reacties (
OlostepServerError_NoResultInResponse)
Transport vs Caller Herhalingen
De SDK heeft twee herhalingslagen:- Transportlaag: Behandelt netwerk-niveau verbindingsfouten (DNS, time-outs, etc.)
- Callerlaag: Behandelt API-niveau tijdelijke fouten (gecontroleerd door
RetryStrategy)
Berekening van Maximale Duur
Configuratievoorbeelden
Hier zijn enkele voorbeelden van hoe je de retry strategie kunt configureren voor verschillende gebruikssituaties.Conservatieve Strategie
Agressieve Strategie
Geen Herhalingen (Snel Falen)
Hoge Doorvoer Strategie
Begrijpen van Jitter
Jitter voegt randomisatie toe om “donderende kudde” problemen te voorkomen wanneer veel clients tegelijkertijd opnieuw proberen. De jitter wordt berekend als:initial_delay=2.0, jitter_min=0.1, jitter_max=0.9:
- Poging 0: base=2.0s, jitter=0.2-1.8s, final=2.2-3.8s
- Poging 1: base=4.0s, jitter=0.4-3.6s, final=4.4-7.6s
- Poging 2: base=8.0s, jitter=0.8-7.2s, final=8.8-15.2s
Best Practices
Voor Productietoepassingen
Voor Ontwikkeling/Testen
Voor Batch Operaties
Monitoring en Debugging
De SDK logt retry-informatie op het DEBUG-niveau:Foutafhandeling
Wanneer alle herhalingen zijn uitgeput, wordt de oorspronkelijke fout opgeworpen:Prestatieoverwegingen
- Geheugen: Elke herhalingspoging gebruikt extra geheugen voor verzoek/antwoord objecten
- Tijd: Totale operatietijd kan aanzienlijk langer zijn met herhalingen ingeschakeld
- API Limieten: Herhalingen tellen mee voor je API-gebruiksbeperkingen
- Netwerk: Meer netwerkverkeer door herhalingspogingen
Gedetailleerde Foutafhandeling
Exceptiehiërarchie
De Olostep SDK biedt een uitgebreide exceptiehiërarchie voor verschillende faalscenario’s. Alle excepties erven vanOlostep_BaseError.
Er zijn drie hoofdsoorten fouten die direct erven van Olostep_BaseError:
Olostep_APIConnectionError- Netwerk-niveau verbindingsfoutenOlostepServerError_BaseError- Fouten veroorzaakt (soort van) door de API-serverOlostepClientError_BaseError- Fouten veroorzaakt door de client SDK
Waarom Verbindingsfouten Apart Zijn
Olostep_APIConnectionError is apart van serverfouten omdat het netwerk-niveau fouten vertegenwoordigt die optreden voordat de API het verzoek kan verwerken. Dit zijn transportlaagproblemen (DNS of HTTP-fouten, time-outs, verbinding geweigerd, etc.) in plaats van API-niveau fouten. HTTP-statuscodes (4xx, 5xx) worden beschouwd als API-reacties en worden gecategoriseerd als serverfouten, ook al duiden ze op problemen.
Aanbevolen Foutafhandeling
Voor de meeste gebruikssituaties, vang de basisfout op en print de foutnaam:OlostepServerError_AuthFailed) is beschrijvend genoeg om het probleem te begrijpen.
Granulaire Foutafhandeling
Als je meer specifieke foutafhandeling nodig hebt, vang dan direct de specifieke fouttypes op. Vermijd het gebruik vanOlostepServerError_BaseError of OlostepClientError_BaseError - deze basisklassen geven alleen aan wie de fout heeft veroorzaakt (server vs client), niet wie verantwoordelijk is voor het oplossen ervan. Dit is een implementatiedetail die niet helpt bij foutafhandelingslogica.
Vang in plaats daarvan specifieke fouttypes op die het daadwerkelijke probleem aangeven:
Configuratie
Omgevingsvariabelen
| Variabele | Beschrijving | Standaard |
|---|---|---|
OLOSTEP_API_KEY | Je API-sleutel | Vereist |
OLOSTEP_BASE_API_URL | API basis-URL | https://api.olostep.com/v1 |
OLOSTEP_API_TIMEOUT | Verzoek time-out (seconden) | 150 |