Show HN: Drop-in Golang wrapper for curl-impersonate (net/HTTP compatible)
Why?
Some sites aggressively fingerprint HTTP clients and block "non-browser" traffic. curl-impersonate does an amazing job at mimicking real browsers. But swapping it into Go projects usually means reworking code.
So... this wrapper just pretends to be net/http. If your code uses http.Get(), http.Post(), or a http.Client, you can swap in my package and (hopefully) get past those annoying "Access Denied / suspicious traffic" walls without rewriting everything.
Example:
// Just import my package instead of net/http import http "github.com/dstockton/go-curl-impersonate-net-http-wrapper"
resp, err := http.Get("https://example.com")
That’s it. Your Go program is now speaking fluent Chrome/Firefox.
Caveats:
Only tested on Linux + macOS so far.
Still very experimental (feedback and PRs welcome!).
I built this mostly because I got tired of cat-and-mouse games with sites that block bots. If you're scraping, testing, or just curious about browser impersonation in Go, give it a spin.
Repo: https://github.com/dstockton/go-curl-impersonate-net-http-wr...
Would love feedback, bug reports, or ideas on making this more robust.
No comments yet