「GoCN酷Go推荐」Go 语言爬虫神器 gocolly/colly

推荐背景

日常业务开发中常会遇到一些采集整理互联网数据信息的业务需求,单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高,此时就用爬虫手段来对数据进行自动采集降低完成业务所需的人力成本;若想用 Go 语言程序来进行爬虫,则推荐使用 gocolly/colly ,它提供简洁的 API,快速且容易地从互联网上获取结构化的数据。

gocolly/colly 是什么

gocolly/colly(https://github.com/gocolly/colly) 是强大 Go 语言爬虫框架,使用Colly 可以开发各种强大的爬虫系统,Colly 提供简洁易用的 API,Colly 快速(在单核上 1 千次请求/秒),能够管理请求延迟,能够同步/同步/并发/分布式爬虫,自动处理 cookie&session,支持缓存,可以通过环境变量进行配置,除此之外你还根据自己的业务需求扩展它的功能。

怎么使用

gocolly/colly 是因为用 Go 语言开发的,因此使用前要安装 Go 语言,Go 语言版本没有限制,建议使用 Go 语言 1.14+ 版本。

具体使用请观看以下视频:

  • 视频 Ytb 地址(https://www.youtube.com/watch?v=4VSno5bK9Uk)

视频配套文档请点击以下链接进行阅读:

  • 英文文档(https://divrhino.com/articles/build-webscraper-with-go-and-colly/)

  • 中文文档(https://gocn.vip/topics/17416)

想了解更多(https://pkg.go.dev/github.com/gocolly/colly/v2)。

小结

gocolly/colly  目前 Github Go 爬虫类包中 Star 数量最多,满足日常网络爬虫业务需求,使用很方便,也可以在改包基础上功能扩展开发满足更多个性化需求。

相关资料

  1. gocolly/colly 官方仓库

  2. gocolly/colly 包文档

  3. 如何使用 Go 和 Colly 包构建网页爬虫

  4. How to build a web scraper with Go and Colly

《酷Go推荐》招募:

各位Gopher同学,最近我们社区打算推出一个类似GoCN每日新闻的新栏目《酷Go推荐》,主要是每周推荐一个库或者好的项目,然后写一点这个库使用方法或者优点之类的,这样可以真正的帮助到大家能够学习到

新的库,并且知道怎么用。

大概规则和每日新闻类似,如果报名人多的话每个人一个月轮到一次,欢迎大家报名!戳「阅读原文」,即可报名

扫码也可以加入 GoCN 的大家族哟~

e03eb1922d2e888a6bb913d31981ce63.png

引用\[1\]:在上文中,我们安装了一个「生成 Golang 代码的插件 protoc-gen-go」,这个插件其实是 golang 官方提供的一个 Protobuf API 实现。而我们的主角 gogo/protobuf 是基于 golang/protobuf 的一个增强版实现。\[1\]这个插件的作用是根据定义的 .proto 文件生成对应的 Go 代码,方便在 Go 语言中使用 Protocol Buffers 进行数据的序列化和反序列化。 引用\[2\]:在使用 protobuf go 插件时,我们需要在代码中引入相应的包,例如 `google.golang.org/protobuf/proto`。通过这个包,我们可以使用 `proto.Marshal` 方法将 Protocol Buffers 对象序列化为字节流,使用 `proto.Unmarshal` 方法将字节流反序列化为 Protocol Buffers 对象。在示例代码中,我们可以看到如何使用这些方法进行序列化和反序列化操作。 引用\[3\]:需要注意的是,github.com/golang/protobuf 1.4 及之后的版本已经是一个新的分支了,如果需要使用旧分支的版本,建议选择 1.4 之前的版本。新的分支是 google.golang.org/protobuf,它包含了更新和简化的 API、对 Protocol Buffers 反射的支持以及许多其他改进。我们建议新的代码使用 google.golang.org/protobuf 模块。 所以,protobuf go 插件的作用是根据定义的 .proto 文件生成对应的 Go 代码,方便在 Go 语言中使用 Protocol Buffers 进行数据的序列化和反序列化。我们可以使用 `proto.Marshal` 方法将对象序列化为字节流,使用 `proto.Unmarshal` 方法将字节流反序列化为对象。需要注意选择合适的版本进行使用。 #### 引用[.reference_title] - *1* [【GoCNGo推荐】protobuf生成Go代码插件gogo/protobuf](https://blog.csdn.net/RA681t58CJxsgCkJ31/article/details/115257850)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [[golang 微服务] 3. ProtoBuf认识,安装以及golang 中ProtoBuf使用](https://blog.csdn.net/zhoupenghui168/article/details/130923516)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Protocol Buffers(protobuf) go语言插件下载和使用,以及import不同文件夹下proto](https://blog.csdn.net/amumu_coding/article/details/128363507)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值