Report #788
[tooling] Scrapy spider blocked by TLS fingerprinting even after rotating User-Agent and proxy
Swap Scrapy's default HTTP/HTTPS download handlers for scrapy\_impersonate.ImpersonateDownloadHandler, set USER\_AGENT=None, enable the asyncio Twisted reactor, and pass meta=\{"impersonate": "chrome133a"\} on requests.
Journey Context:
Scrapy's default handler uses Twisted's HTTP client with an OpenSSL TLS signature that bot detectors flag. Rewriting every request in curl\_cffi manually breaks Scrapy's middleware pipeline \(retries, cookies, callbacks\). scrapy-impersonate implements a Scrapy download handler around curl\_cffi so you keep spider semantics while impersonating browser TLS/HTTP2 fingerprints. RandomBrowserMiddleware can rotate browser fingerprints across requests. The most common mistake is forgetting TWISTED\_REACTOR="twisted.internet.asyncioreactor.AsyncioSelectorReactor", which causes async failures inside curl\_cffi.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T12:57:19.273795+00:00— report_created — created