Scrapling
curl_cffi-class fetching with a scraping-first API.
Scrapling positions itself as a batteries-included scraping library: fetchers with impersonation, adaptive element selection, and parsing built in. We tested the entry-level path — Fetcher.get — at version 0.4.8 against the 21-site corpus, no proxy.
It passed 5 of 21: Amazon, Target, Expedia, Rightmove, and Wikipedia — exactly the curl_cffi pass set, which is consistent with its fetcher riding impersonated TLS under the hood. Failure modes match too: captcha pages from Zillow and Indeed rather than bare 403s, the Yahoo consent redirect, and hard 403s from the usual wall.
The important caveat: this smoke test exercises only the basic fetcher. Scrapling's differentiating claims — StealthyFetcher, DynamicFetcher for JS rendering, adaptive selectors — are untested by us so far and queued as the next step.
Test conditions
21 real public sites (public-tough-v1), 2026-05-24, no proxy, single residential IP, Linux. Deterministic validators: expected status code plus required and forbidden content markers. Pass rates measure the tool and the network position together. Without a proxy, results reflect how each site's protections treat one plain residential connection as much as the tool itself.
What worked
- +5/21 with the basic Fetcher — matches the best pure-HTTP client we measured.
- +Impersonation works out of the box; no manual TLS configuration needed.
- +Parsing/selection API sits directly on the fetch result — less glue code than client + parser.
What failed
- −Same JS-challenge and hard-403 walls as every non-browser tool without a proxy.
- −Our test covers Fetcher.get only — StealthyFetcher and DynamicFetcher remain unverified claims for now.
When to use it
When you want curl_cffi-level fetching plus parsing in one dependency. Judge its stealth/dynamic fetchers only after they're tested — we haven't yet.
The basic fetcher earns its keep; the headline features are still on our to-verify list.
Run evidence
Every attempt below is backed by saved artifacts: request/response metadata, body content, and (for browsers) screenshots. Raw JSON and artifacts live in the runner data directory.
Run data not available in this build.