今年开始学习GO,所以GO中是否有适合数据分析的包我也不太清楚。但是爬虫的工具是有一些的。

我最近在用GO裸写爬虫。具体的思路也是参考着scrapy框架。涉及enginer、downloader、parser、itemLoader这些,有时间还可以把scrapy中间件思想也加进来。可以利用go的天然支持高并发把parser和downloader封装到一个worker中,加入scheduler来实现并发控制。这个就不展开了。

GO裸写爬虫可以结合GO的http 和 goquery两个库来做。http可理解为python的requests,goquery可以理解为python的beautifulsoup,即它们分别可用于获取和解析网页。

goquery的语法类似jquery,可以便捷的操作dom,github地址如下:

来一个简单的demo,获取某篇文章的标题:[翻译]Go的Defer、Panic和Recover。

很简单吧!

了解一下,GO也提供了一些爬虫框架,我使用GO的时间不长,我也没有用过,简单列举一些,如下:

  • gocrawl
  • pholcus
  • colly

等等。

有时间可以都研究一下。


补充:

几个月过去了,GO的学习也大有成果,最近发现GO也有一些数据分析包。补充下回答,有时间可以具体研究下。

与python中两个最著名的两个包:pandas和numpy,Go中对应的分别是gota和gonum,github的地址如下:

但是,它们的活跃度感觉都不是很高,看样子还不是很流行。而且gota的更新也不是很频繁,pandas功能那么强大,其中的很多功能gota肯定还没有实现,但却不怎么更新了,痛心。

如果以后发现其他更加优秀的数据分析包,再来补充。


补充:

最近,写了一篇较为系统的介绍 net/http 实现 HTTP 请求的文章,先来看看目录,如下:

这篇文章写的这么好,竟然没人赞同,我表示很奇怪啊。文章地址:


欢迎关注我的专栏,Golang 之旅,见证我的 Golang 学习历程。