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 · scrapling-common-sites-v1-20260524
adapter: scrapling.Fetcher.get
| Target | Result | Detail | Latency |
|---|---|---|---|
| amazon.comamazon_search_laptop | pass | status 200 | 1.1 s |
| walmart.comwalmart_search_laptop | fail | block marker: “Blocked” | 2.9 s |
| ebay.comebay_search_laptop | fail | expected 200, got 403 | 237 ms |
| aliexpress.comaliexpress_search_laptop | fail | block marker: “Robot” | 1.8 s |
| target.comtarget_search_laptop | pass | status 200 | 1.1 s |
| booking.combooking_search_paris | fail | expected 200, got 202 | 103 ms |
| airbnb.comairbnb_search_paris | fail | block marker: “captcha” | 1.3 s |
| tripadvisor.comtripadvisor_restaurants_paris | fail | expected 200, got 403 | 160 ms |
| expedia.comexpedia_hotels_paris | pass | status 200 | 2.0 s |
| zillow.comzillow_homes_for_sale | fail | block marker: “CAPTCHA” | 965 ms |
| realtor.comrealtor_new_york | fail | expected 200, got 429 | 333 ms |
| rightmove.co.ukrightmove_london | pass | status 200 | 907 ms |
| indeed.comindeed_python_remote | fail | block marker: “captcha” | 1.3 s |
| yelp.comyelp_sf_restaurants | fail | expected 200, got 403 | 210 ms |
| trustpilot.comtrustpilot_amazon | fail | expected 200, got 403 | 73 ms |
| newyork.craigslist.orgcraigslist_nyc_bike | fail | expected 200, got 403 | 672 ms |
| finance.yahoo.comyahoo_finance_aapl | fail | redirected to consent.yahoo.com | 905 ms |
| coinmarketcap.comcoinmarketcap_home | fail | block marker: “captcha” | 90 ms |
| reddit.comreddit_webscraping | fail | expected 200, got 403 | 333 ms |
| youtube.comyoutube_search_scraping | fail | block marker: “captcha” | 765 ms |
| en.wikipedia.orgwikipedia_web_scraping | pass | status 200 | 236 ms |