Changelog¶
Pre-1.0 Disclaimer
scrape-do-python follows Semantic Versioning, but 0.x minor versions may contain breaking changes
Format
The format below is based on Keep a Changelog
0.1.1 — 2026-05-09¶
Added¶
- Curated public re-exports in
scrape_do/__init__.pyso common imports work asfrom scrape_do import ScrapeDoClient, RequestParameters, ...rather than digging into submodules. py.typedPEP 561 marker so downstream type-checkers (mypy,pyright) consume the package's type hints.- Trove classifiers in package metadata — PyPI's "Python" sidebar and shields.io's
pypi/pyversionsbadge now populate correctly.
Removed¶
- Empty
scrape_do/namespaces/placeholder folder (was scaffolding from before the roadmap solidified; will be replaced byplugins/in0.4+).
Documentation¶
- Planned package layout added to
Roadmap
0.1.0 — 2026-05-08¶
Initial release. Synchronous client surface.
Added¶
-
ScrapeDoClientsynchronous client withrequest(),get(),post(),execute(), andexecute_from_url()methods. -
Smart routing in
ScrapeDoClient.request(): accepts kwargs, a pre-builtRequestParameters, or a rawapi.scrape.doURL — exactly one configuration shape per call. -
Automatic retries on Scrape.do gateway errors (
429/502/510) with configurable backoff strategy (staticfloatorCallable). Default is jittered exponential. -
session_validatorcallback for sticky-session rotation detection — when present andsession_idis set, the validator decides whether to raiseRotatedSessionError. -
SDK-native event hooks via
SyncClientEventHooksTypedDict:request/response/retrylifecycle, distinct fromhttpxtransport-level hooks. -
Pydantic-validated
RequestParameterscovering the full Scrape.do API parameter surface, includingbrowser-action models. -
ScrapeDoResponsewrapper exposing the parsed JSON envelope, network requests, websocket frames, action results, screenshots, frames, plus a rawstatus_codepassthrough. -
Cookie isolation between sequential requests on the underlying
httpx.Client(prevents cross-request bleed). -
Exception hierarchy:
ScrapeDoError(base),APIConnectionError,TargetError,RotatedSessionError, plus the API-layerAuthenticationError,BadRequestError,RateLimitError,ServerError, andAuthenticationThrottleError -
Default request timeout raised to 60 seconds (from
httpx's 5s default) to accommodate browser rendering and proxy round-trips.