Show HN: Drop-in Golang wrapper for curl-impersonate (net/HTTP compatible)

1 daveys110 0 9/2/2025, 12:57:50 PM github.com ↗
I built a small wrapper around curl-impersonate that makes it act like Go's net/http package: github.com/dstockton/go-curl-impersonate-net-http-wrapper

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.

Comments (0)

No comments yet