Usabletested 2026-05-24 · public-tough-v1 · proxy: none

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.