go爬虫和python爬虫_Golang 发展到现在是否有类似 Python 那样数据分析和爬虫包呢?...

今年开始学习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地址如下:PuerkitoBio/goquery​github.comv2-0313742d52a008390ee1721f6eb3bc85_ipico.jpg

package main

import (

"fmt"

"github.com/PuerkitoBio/goquery"

"net/http"

)

func main() {

resp, err := http.Get("https://zhuanlan.zhihu.com/p/58911474")

if err != nil {

panic(err)

}

defer func() {

_ = resp.Body.Close()

}()

s, err := goquery.NewDocumentFromReader(resp.Body)

if err != nil {

panic(err)

}

fmt.Println(s.Find("h1.Post-Title").First().Text())

}

很简单吧!

了解一下,GO也提供了一些爬虫框架,我使用GO的时间不长,我也没有用过,简单列举一些,如下:gocrawlPuerkitoBio/gocrawl​github.comv2-0313742d52a008390ee1721f6eb3bc85_ipico.jpgpholcushenrylee2cn/pholcus​github.comv2-c77773f1b3017c3a0ab46de753f9287d_ipico.jpgcollyhttps://github.com/gocolly/colly​github.comv2-6fa6a5388d1acf9a16888ae4b6eebd14_ipico.jpg

等等。

有时间可以都研究一下。

补充:

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

与python中两个最著名的两个包:pandas和numpy,Go中对应的分别是gota和gonum,github的地址如下:https://github.com/go-gota/gota​github.comgonum/gonum​github.comv2-3311d0c17312e9755f3bfbfaa09b78a8_ipico.jpg

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

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

补充:

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

这篇文章写的这么好,竟然没人赞同,我表示很奇怪啊。文章地址:波罗学:GO爬虫必备之HTTP请求QuickStart​zhuanlan.zhihu.comv2-b818a6d21eb8079c9b5f1aa4c5f800af_180x120.jpg

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值