1 分•作者: daveys110•9 个月前
我围绕 curl-impersonate 构建了一个小型的封装器,使其行为类似于 Go 的 net/http 包:github.com/dstockton/go-curl-impersonate-net-http-wrapper
为什么?
一些网站会积极地对 HTTP 客户端进行指纹识别,并阻止“非浏览器”流量。
curl-impersonate 在模仿真实浏览器方面做得非常出色。
但是,将其替换到 Go 项目中通常意味着需要重写代码。
所以... 这个封装器只是假装是 net/http。如果您的代码使用 http.Get()、http.Post() 或 http.Client,您可以换入我的包,(希望)在不重写所有内容的情况下,绕过那些烦人的“访问被拒绝 / 可疑流量”的障碍。
示例:
```go
// 仅导入我的包而不是 net/http
import http "github.com/dstockton/go-curl-impersonate-net-http-wrapper"
resp, err := http.Get("https://example.com")
```
就是这样。您的 Go 程序现在正在流利地使用 Chrome/Firefox 交流。
注意事项:
目前仅在 Linux + macOS 上进行了测试。
仍处于实验阶段(欢迎反馈和 PR!)。
我构建这个主要是因为我厌倦了与阻止机器人的网站玩猫捉老鼠的游戏。如果您正在进行抓取、测试,或者只是对 Go 中的浏览器模拟感兴趣,请试一试。
仓库:github.com/dstockton/go-curl-impersonate-net-http-wr...
欢迎提供反馈、错误报告或关于如何使其更强大的想法。