Repository navigation
v0.1.0
First release of cloudfetch, a Go HTTP client that gets past Cloudflare bot detection by impersonating a real browser.
go get github.com/luinor223/cloudfetch@v0.1.0Features
- Browser TLS fingerprints via uTLS: Chrome 133 (default), Firefox 120, Safari 16 and Edge 85, selected with
WithBrowser - Matching headers:
User-Agent,Sec-CH-UA,Sec-Fetch-*and friends for the same browser and version as the TLS fingerprint - IUAM challenge solver: solves the classic "Checking your browser" JS challenge with goja and retries automatically
- HTTP/2 with ALPN negotiation and connection reuse, falling back to HTTP/1.1
- Transparent decompression: brotli, gzip, deflate and zstd via
resp.Text()/resp.Bytes() - HTTP CONNECT proxies with optional basic auth (
WithProxy("http://user:pass@host:port")) - Cancellation:
DoContextapplies a context to every request and to challenge waits - Cookie jar shared across requests
Limitations
- Header order and HTTP/2 settings come from Go's
net/http, so sites that fingerprint those can still tell it apart from a browser. - Newer
challenge-platformJS challenges are detected but usually not solved. - Turnstile and CAPTCHAs need a real browser.
See the README for usage.