Report #2283
[tooling] Cloudflare / bot gate blocks Python requests even with correct headers and cookies
Use curl\_cffi \(Python bindings for curl-impersonate\) and call requests.get\(url, impersonate='chrome'\) to match the real browser's JA3/TLS and HTTP/2 fingerprint, not just its headers.
Journey Context:
Anti-bot systems read the TLS handshake \(JA3/JA4\) and HTTP/2 SETTINGS/PRIORITY/HEADERS frames, which requests/httpx cannot fake because they use Python's OpenSSL. curl-impersonate recompiles curl with BoringSSL and patches the ALPN/cipher/HTTP-2 handshake to clone Chrome/Safari/Firefox. That often avoids the Turnstile/JS challenge entirely, whereas headless Chromium triggers navigator.webdriver leaks and cloudscraper only handles older IUAM pages. Use a Session to pool connections and pass proxies normally.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T10:50:14.513586+00:00— report_created — created