
写了一个基于 Golang 的 HTTP 客户端,可以做为爬虫工具。因为用 Golang 发请求的时候发现有些设置很麻烦,所以参考 Python 的 Requests,写了这个工具。
地址: https://wnanbei.github.io/direwolf/
网站中有完整的中文文档,后续会继续完善和添加新的功能。有兴趣的朋友欢迎在 Gayhub 点个 star,如果有 BUG、问题或者建议,也可以在 Gayhub 的 Issues 页面与我讨论。
特性:
以下是部分简单用法的展示:
你可以像下方这样非常简单的发起一个请求:
import ( "fmt" dw "github.com/wnanbei/direwolf" ) func main() { resp, err := dw.Get("http://httpbin.org/get") if err != nil { return } fmt.Println(resp.Text()) } 输出:
{ "args": {}, "headers": { "Accept-Encoding": "gzip", "Host": "httpbin.org", "User-Agent": "direwolf - winter is coming" }, "origin": "171.217.52.188, 171.217.52.188", "url": "https://httpbin.org/get" } 除此之外,direwolf 可以很方便的给一个请求添加参数,例如 Headers、Cookies、Params。
import ( "fmt" dw "github.com/wnanbei/direwolf" ) func main() { headers := dw.NewHeaders( "User-Agent", "direwolf", ) params := dw.NewParams( "name", "wnanbei", "age", "18", ) cookies := dw.NewCookies( "sign", "kzhxciuvyqwekhiuxcyvnkjdhiue", ) resp, err := dw.Get("https://httpbin.org/get", headers, params, cookies) if err != nil { return } fmt.Println(resp.Text()) } 输出:
{ "args": { "age": "18", "name": "wnanbei" }, "headers": { "Accept-Encoding": "gzip", "Cookie": "sign=kzhxciuvyqwekhiuxcyvnkjdhiue", "Host": "httpbin.org", "User-Agent": "direwolf" }, "origin": "1.1.1.1, 1.1.1.1", "url": "https://httpbin.org/get?age=18&name=wnanbei" } 1 meteor957 2019 年 12 月 2 日 感觉 go 的轮子还挺多.... |
3 Wenco 2019 年 12 月 2 日 |
5 realpg PRO V 站 天天又是版权又是 TOS 的 为啥搞起来违法的爬虫一个比一个精神 |
9 yaoye555 2019 年 12 月 2 日 算了,兄 die,在 v 站里 爬虫 == 违法 == 坐牢. 我就纳闷为啥大厂都在明目张胆的招 |
10 u823tg 2019 年 12 月 2 日 加油,保持更新。 |
11 wnanbei OP @yaoye555 算了,也不辨这些,跟我也没关系。本来只是提一句可以用来写爬虫的。 我写的是 HTTP 客户端,用来发请求的,跟 python 的 requests 差不多,爱拿来干啥干啥。 |
13 faceair 2019 年 12 月 2 日 |
15 wsseo 2019 年 12 月 2 日 这么多 http client,改选哪一个? |
20 locoz 2019 年 12 月 3 日 |
21 locoz 2019 年 12 月 3 日 我感觉我在 V2 上看到好几个仿 Python 上 requests 库的 Golang 库了 |