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 a snapshot 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
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. This snapshot was generated on 2026-07-30 on a single ARM64 machine. Run it yourself with python benchmarks.py.

Resource routing

Full page load with delayed assets

PolicyTime (ms)vs ALL
DOCUMENTS140.870.43x
LITE260.490.80x
ALL325.581.0x

Blocking images, fonts, and media (LITE) cuts load time ~20%; also dropping stylesheets (DOCUMENTS) reaches ~57%.

Session reuse

Warm persistent session vs cold launch per fetch

ModeTime (ms)vs warm
Warm session reuse180.621.0x
Cold launch per fetch315.281.75x

Reusing a persistent session avoids per-fetch browser/context startup, roughly 1.75x faster than launching cold each time.

Concurrency

8 pages per batch from one session

~151 ms

average per page

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