Golang Go语言中的基于HTTP客户端的爬虫工具direwolf
Golang Go语言中的基于HTTP客户端的爬虫工具direwolf
写了一个基于 Golang 的 HTTP 客户端,可以做为爬虫工具。因为用 Golang 发请求的时候发现有些设置很麻烦,所以参考 Python 的 Requests,写了这个工具。
地址: https://wnanbei.github.io/direwolf/
网站中有完整的中文文档,后续会继续完善和添加新的功能。有兴趣的朋友欢迎在 Gayhub 点个 star,如果有 BUG、问题或者建议,也可以在 Gayhub 的 Issues 页面与我讨论。
特性:
- 简单方便的 API 接口
- 非常方便的设置 Headers,Cookies,URL 参数,Post 表单 等请求选项
- 可以设置到单个请求的超时、代理、重定向控制
- Cookie 的自动管理与存储
- 内置连接池,复用 TCP 连接
- 支持用正则或 CSS 选择器提取响应数据
- 响应编码控制
以下是部分简单用法的展示:
你可以像下方这样非常简单的发起一个请求:
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"
}
更多关于Golang Go语言中的基于HTTP客户端的爬虫工具direwolf的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
感觉 go 的轮子还挺多…
更多关于Golang Go语言中的基于HTTP客户端的爬虫工具direwolf的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
觉得它好用,愿意造轮子的就多了
就是觉得这个东西很…我才自己写的
V 站 天天又是版权又是 TOS 的
为啥搞起来违法的爬虫一个比一个精神
#6
我就告诉你一件事
你写的东西当然不违法
但是实际用起来 99.99999%都是违反人家 TOS 的
夸张了,爬虫本质上只是网络请求,能做的事情很多,不能因为其被一部分人用于违法的,就把爬虫整个定义为违法的。
算了,兄 die,在 v 站里 爬虫 == 违法 == 坐牢. 我就纳闷为啥大厂都在明目张胆的招
加油,保持更新。
算了,也不辨这些,跟我也没关系。本来只是提一句可以用来写爬虫的。
我写的是 HTTP 客户端,用来发请求的,跟 python 的 requests 差不多,爱拿来干啥干啥。
谢谢,会保持更新的
参考的对象应该都是 python 的 requests
这么多 http client,改选哪一个?
你可以爬可以自己偷偷摸摸用,但是你不能分享不能用这个数据去卖钱。就这么简单。。。
我只是好奇猪场招爬虫是干什么的,坐标广州
你问我的话,那我肯定说选 direwolf 呀,哈哈哈
其实蛮多地方都会零零碎碎的需要爬虫的吧
#7 任何东西都要讲量的,与使劲调开放平台的 API 一样可以达到 DDOS 的效果同理。
#9 大厂招爬虫是因为需要,数据分析相关的业务只要涉及外部公开数据就会需要爬虫,毕竟别人的数据可不会随便拿出来卖。
我感觉我在 V2 上看到好几个仿 Python 上 requests 库的 Golang 库了
可能都是觉得别人写的不够好,就自己写。实际上自己写出来的也没有好到哪里去,哈哈哈。
还有个原因估计是没有长期稳定有效的更新。
那百度违法吗?谷歌违法吗?
针对帖子中提到的“Golang Go语言中的基于HTTP客户端的爬虫工具direwolf”,以下是我的专业回复:
Direwolf是一个使用Golang编写的HTTP客户端工具,它在爬虫开发领域具有一定的应用价值。以下是对Direwolf的简要介绍:
一、功能特性
- Direwolf提供了清洁便捷的API,使得设置请求头、Cookie、参数、表单等操作变得简单。
- 支持会话控制、连接池、HTTP(S)代理、重定向控制、超时控制等高级功能。
- 可以从响应主体中使用css选择器、regexp、json等方式提取结果。
二、应用场景
Direwolf非常适合用于构建基于Go语言的网络爬虫。通过利用其强大的HTTP客户端功能和灵活的解析能力,开发者可以高效地抓取网页数据、解析HTML文档,并提取所需信息。
三、使用建议
- 在使用Direwolf进行爬虫开发时,建议熟悉其API文档和示例代码,以便更好地利用其功能。
- 注意遵守目标网站的robots.txt协议和法律法规,避免过度爬取和滥用资源。
- 对于复杂的爬虫任务,可能需要结合其他工具和库来共同实现。
总之,Direwolf是一个功能强大的HTTP客户端工具,在Go语言爬虫开发领域具有一定的应用价值。