Benchmarks

Stealth comparison against other anti-detect stacks, plus performance benchmarks for what WebSkrap actually does: resource routing, session reuse, and concurrent fetching.

Comparison

CloakBrowser values are copied from its upstream README. WebSkrap values are from the local live report generated on 2026-06-26 with python scripts\live_stealth_report.py --no-open --report-only.

Feature comparison
WebSkrap patchright vs other stacks
FeaturePlaywrightplaywright-stealthundetected-chromedriverCamoufoxCloakBrowserWebSkrap patchright
reCAPTCHA v3 score0.10.3-0.50.3-0.70.7-0.90.9Pass in headed mode (>=0.7 gate)
Cloudflare TurnstileFailSometimesSometimesPassPassRenders challenge surface
Patch levelNoneJS injectionConfig patchesC++ (Firefox)C++ (Chromium)Patchright driver + native Chrome options
Survives Chrome updatesN/ABreaks oftenBreaks oftenYesYesDepends on Chrome + Patchright
MaintainedYesStaleStaleUnstableActiveActive project tests
Browser engineChromiumChromiumChromeFirefoxChromiumChrome/Chromium
Playwright APINativeNativeNo (Selenium)NoNativeNative-compatible
Detection services
Stock Playwright vs CloakBrowser vs WebSkrap patchright headed
Detection serviceStock PlaywrightCloakBrowserWebSkrap headedNotes
reCAPTCHA v30.1 (bot)0.9 (human)PASSWebSkrap asserts score >=0.7 when Google's demo returns one
Cloudflare Turnstile (non-interactive)FAILPASSPASSPublic demo renders the challenge surface; WebSkrap does not solve it
FingerprintJS bot detectionDETECTEDPASSPASSdemo.fingerprint.com/web-scraping returns demo data
BrowserScan bot detectionDETECTEDNORMAL (4/4)PASS0 abnormal checks in headed run
bot.incolumitas.com13 fails1 failPASSOnly tolerated network/spec false positives
deviceandbrowserinfo.com6 true flags0 true flagsPASSisBot: false
bot.sannysoft.comDETECTEDNot listedTIMEOUTLatest run timed out waiting for networkidle
BrowserLeaks WebRTCNot listedNot listedPASSNo private ICE candidate IPs exposed
BrowserLeaks Client HintsNot listedNot listedPASSNo HeadlessChrome token
TLS / JA3 visibilityMismatchIdentical to ChromePASSTLS/JA3/JA4 surface is visible; no proxy mismatch without proxy
DNS leak standard testNot listedNot listedPASSResolver rows are public; optional proxy country/IP expectations supported
Latest WebSkrap live summary: 24 passed, 2 failed, 1 skipped. Headed: 17 passed, 1 failed. Headless: 7 passed, 1 failed, 1 skipped. The two failures were Sannysoft headed/headless networkidle timeouts; the headless skip was reCAPTCHA v3 not returning a score from Google's public demo.

Performance

Run against a local HTTP server serving a synthetic page with many delayed sub-resources. No external sites are contacted, so results are deterministic. Numbers are from a single machine — run them yourself with python benchmarks.py.

Resource routing
Full page load with delayed assets
PolicyTime (ms)vs ALL
DOCUMENTS156.980.58x
LITE169.420.62x
ALL271.231.0x
Blocking images, fonts, and media (LITE) cuts load time ~38%; also dropping stylesheets (DOCUMENTS) reaches ~42%.
Session reuse
Warm persistent session vs cold launch per fetch
ModeTime (ms)vs warm
Warm session reuse215.741.0x
Cold launch per fetch411.681.91x
Reusing a persistent session avoids per-fetch browser/context startup, roughly 2x faster than launching cold each time.
Concurrency
8 pages per batch from one session
~109 ms
average per page

Benchmarks average 20+ navigations after warm-up. See benchmarks.py for methodology.