The three-tier fetching system
Tier 1 — Fetcher uses curl_cffi to send HTTP requests with a real browser TLS fingerprint (JA3/JA4) for Chrome/Firefox/Safari/Edge, plus browserforge-generated headers. No JavaScript runs, so there is no browser-fingerprinting surface at all — the fastest option (~10MB footprint) and enough for ~90% of pages. Tier 2 — DynamicFetcher is vanilla Playwright for JS-rendered content with wait_selector and network-idle helpers, but no special stealth. Tier 3 — StealthyFetcher wraps Patchright (default) or Camoufox (use_camoufox=True) and exposes flags like solve_cloudflare=True, block_webrtc=True, hide_canvas=True, and disable_webgl=True.
Cloudflare handling and adaptive selectors
solve_cloudflare=True detects the Turnstile/interstitial page, waits for the challenge iframe, interacts, and waits for the redirect — without an external CAPTCHA API. As the analysis stresses, it is not solving the CAPTCHA; Patchright/Camoufox present a browser environment Cloudflare trusts enough to auto-pass.
The unique feature is adaptive element tracking: Scrapling can store the structural context of a matched element and, when a CSS selector breaks after a site redesign, re-locate the same element by fuzzy structural matching. No other tool in this comparison offers this. It pairs with a fast lxml-based parser, a Scrapy-like spider with pause/resume checkpoints, and an MCP server for Claude/Cursor workflows.
When to use Scrapling
Use it when: you want one framework for an entire pipeline rather than stitching tools together, you have mixed protection levels (cheap HTTP for most pages, browser stealth for the hard ones), you scrape sites that change their DOM often, or you want AI-integrated scraping. Note: it does not add new stealth of its own — Tier 3 inherits whatever Patchright or Camoufox provides — so for the hardest enterprise targets you are still bound by those engines' limits. It is a Python orchestration layer, not a novel evasion technique.
