这可能是最知名的 Go 爬虫框架

2022年9月7日 354点热度 0人点赞 0条评论

【公众号回复 “1024”,免费领取程序员赚钱实操经验】
图片
大家好,我是章鱼猫。
今天给大家分享一个 Go 语言领域可能是最知名的爬虫框架了。
这个开源项目有 17.5k star,可见非常受欢迎。
没错,它就是:colly
图片
colly 是一个采用 Go 语言编写的 Web 爬虫框架,旨在提供一个能够些任何爬虫 / 采集器 / 蜘蛛的简介模板,通过 Colly。你可以轻松的从网站提取结构化数据,然后进行数据挖掘,处理或归档。
功能特性:
  • 清晰明了的 API

  • 速度快(每个内核上的请求数大于 1K)

  • 管理每个域的请求延迟和最大并发数

  • 自动 cookie 和会话处理

  • 同步 / 异步 / 并行抓取

  • 高速缓存

  • 自动处理非 Unicode 编码

  • 支持 Robots.txt

  • 支持 Google App Engine

  • 通过环境变量进行配置

  • 可拓展

我们来通过一个 hello word 案例快速体验下 colly 的使用。步骤如下:
第一步,导入 colly。
import "github.com/gocolly/colly"
第二步,创建 collector。
c := colly.NewCollector()
第三步,事件监听,通过 callback 执行事件处理。
// Find and visit all links
c.OnHTML("a[href]", func(e *colly.HTMLElement) {
   link := e.Attr("href")
   // Print link
   fmt.Printf("Link found: %q -> %s\n", e.Text, link)
   // Visit link found on page
   // Only those links are visited which are in AllowedDomains
   c.Visit(e.Request.AbsoluteURL(link))
})

c.OnRequest(func(r *colly.Request) {
   fmt.Println("Visiting", r.URL)
})
我们顺便列举一下 colly 支持的事件类型,如下:
  • OnRequest 请求执行之前调用

  • OnResponse 响应返回之后调用

  • OnHTML 监听执行 selector

  • OnXML 监听执行 selector

  • OnHTMLDetach,取消监听,参数为 selector 字符串

  • OnXMLDetach,取消监听,参数为 selector 字符串

  • OnScraped,完成抓取后执行,完成所有工作后执行

  • OnError,错误回调

最后一步,c.Visit () 正式启动网页访问。
c.Visit("http://go-colly.org/")
案例的完整代码在 colly 源码的 _example 目录下 basic中提供。
这里我就不过多介绍了,具体的,更详细的使用方法,可以去官网上查看 API ,步骤非常详细,也很简单。
开源项目地址:https://github.com/gocolly/colly
开源项目作者:Colly
最近,章鱼猫建了一个「GitHub 精选交流群」,欢迎大家一起交流优秀开源项目,也可以宣传自己的开源项目,加我微信:loonggg1024,备注【GitHub】邀请你入群。
---特别推荐---
特别推荐:一个新的优质的专注分享各种浏览器插件、黑科技教程、各种你想不到的高效率软件及工具的公众号,「程序员掘金」,专注挖掘好东西,非常值得大家关注。点击下方公众号卡片,直接关注

83930这可能是最知名的 Go 爬虫框架

这个人很懒,什么都没留下

文章评论