查看原文
其他

这是我见过最知名的 Go 爬虫框架!

猿哥 GitHub猿 2023-04-20

推荐关注

责编:猿哥 | 来源:GitHub黑板报 整理

往期文章:一个很酷的云建站系统

正文

大家好,我是GitHub猿。今天,推荐一个系统项目。猿哥第一次使用就有点上头,爱不释手,必须要推荐给大家。

上次是谁要的系统项目啊,猿哥帮你找到了。

这是我目前见过最好的系统项目。功能完整,代码结构清晰。值得推荐。

📚 项目介绍

最近猿哥在逛网站的时候发现一个不错的开源项目,这个项目目前收获了 17.6K Star,猿哥觉得不错,值得拿出来和大家分享下。

本项目是一个 Go 语言领域可能是最知名的爬虫框架了。扩展:接私活儿

是一个采用 Go 语言编写的 Web 爬虫框架,旨在提供一个能够些任何爬虫 / 采集器 / 蜘蛛的简介模板,通过 Colly。你可以轻松的从网站提取结构化数据,然后进行数据挖掘,处理或归档。另外,搜索公众号顶级科技后台回复“API接口”,获取一份惊喜礼包。

功能特性:

  • 清晰明了的 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 支持的事件类型,如下:

牛逼啊!接私活必备的 N 个开源项目!赶快收藏

  • OnRequest 请求执行之前调用

  • OnResponse 响应返回之后调用

  • OnHTML 监听执行 selector

  • OnXML 监听执行 selector

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

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

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

  • OnError,错误回调

最后一步,c.Visit () 正式启动网页访问。

c.Visit("http://go-colly.org/")

案例的完整代码在 colly 源码的 _example 目录下 basic中提供。

这里我就不过多介绍了,具体的,更详细的使用方法,可以去官网上查看 API ,步骤非常详细,也很简单。

   最后,想学习这个项目的可以查看项目地址:


项目源码,怎么领取?

源码获取

牛逼啊!接私活必备的 N 个开源项目!赶快收藏

扫码下方二维码,后台回复【爬虫框架】即可获取所有系统

欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️

在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!

--END--


猿哥个人微信


添加猿哥个人微信即送一份惊喜大礼包


→ 技术资料共享

→ 技术交流社群



版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!

往日文章:
牛逼啊!接私活必备的 N 个开源项目!赶快收藏吧(附源码合集第六期)!
推荐一套开源通用后台管理系统(附源码)
19.5K Star,这款微信插件太好用了!
11.2K Star,一款超级炫酷的桌面构建神器!
这个牛逼的低代码生成器,现在开源了!
卧槽,又一款简洁实用的个人博客系统!
2022年程序员们都在用的神级数据库!
牛逼!这个前后端分离的后台管理系统开源了!
牛逼啊,又一个商城系统开源了!太卷了, 某公司把自家运营多年的核心系统(智慧系统)完全开源了....
看看人家那身份证号码识别系统,那叫一个优雅!

最近,GitHub猿建了一个「GitHub猿交流群」,欢迎大家一起交流优秀开源项目,也可以宣传自己的开源项目,在 「GitHub猿」公众号后台回复【加群】邀请你入群。

你点的每个赞,我都认真当成了喜欢

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存