写了一个基于 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-02 10:34:51 +08:00
感觉 go 的轮子还挺多....
|
3
Wenco 2019-12-02 10:47:20 +08:00
|
5
realpg 2019-12-02 14:28:17 +08:00
V 站 天天又是版权又是 TOS 的
为啥搞起来违法的爬虫一个比一个精神 |
8
wnanbei OP @realpg 夸张了,爬虫本质上只是网络请求,能做的事情很多,不能因为其被一部分人用于违法的,就把爬虫整个定义为违法的。
|
9
yaoye555 2019-12-02 15:00:34 +08:00
算了,兄 die,在 v 站里 爬虫 == 违法 == 坐牢. 我就纳闷为啥大厂都在明目张胆的招
|
10
u823tg 2019-12-02 15:07:20 +08:00
加油,保持更新。
|
11
wnanbei OP @yaoye555 算了,也不辨这些,跟我也没关系。本来只是提一句可以用来写爬虫的。
我写的是 HTTP 客户端,用来发请求的,跟 python 的 requests 差不多,爱拿来干啥干啥。 |
13
faceair 2019-12-02 15:32:18 +08:00
|
15
wsseo 2019-12-02 17:37:46 +08:00
这么多 http client,改选哪一个?
|
20
locoz 2019-12-03 10:00:52 +08:00
|
21
locoz 2019-12-03 10:02:48 +08:00
我感觉我在 V2 上看到好几个仿 Python 上 requests 库的 Golang 库了
|