【Go】根据最近遇到的爬虫需求,想自己用 Go 写一个爬虫框架,有朋友感兴趣吗?
本帖最后由 thepoy 于 2021-7-25 12:07 编辑自己能力和精力有限,希望能同有兴趣的朋友一起完成。
写这个框架,是因为 colly 框架代码写得太死板,失去了一个框架该有的灵活性。虽然也可以改改代码再用,但是改代码还不如从头写一个,所以就写了这个框架。
有参考过 colly 的代码。
现在代码只是初具雏形,尚未实现全部功能,缓存、数据库模块连接口还都没写完,go pool 也没有完成。
但现在的版本已经可以通过 sync.WaitGroup 创建多个 go 访问了,但在高并发时频繁地创建 goroutine 是对资源的浪费,而 go pool 的目的就是想实现 goroutine 的复用。
另外,框架的 http 请求是用 fasthttp 完成,而不是标准库 net/http 。
项目地址:(https://github.com/thep0y/predator)
ps: 请忽略项目介绍中的所谓“高性能”,当前这是在吹逼。 联盟少侠 发表于 2021-7-25 15:09
这种框架还是不要自己造车了,太难了!而且容易被淘汰!!辛辛苦苦几十年,一下回到解放前
主要是自己用的,基于自己的需求也不算造车了。
没有人一起的话,就是我自己有啥需求就加上去。
不然以后在爬虫时可能还会遇到一些别的框架解决不了的问题,又将是一阵头痛。 本帖最后由 hahaxi 于 2021-7-26 22:00 编辑
colly确实超好用
之前爬图片大概就碰到两种一种page++的去找div img 还有ajax请求的解析json
都不麻烦 就没去弄通用的
而且自带缓存虽然好几次发现缓存比下载下来的文件还大 原生库的效率相比Java也已经高了太多了,以前爬虫我都是拿Java写的,用了Go之后发现除了处理Json比较难受,别的地方都挺爽的 侃遍天下无二人 发表于 2021-7-25 13:04
原生库的效率相比Java也已经高了太多了,以前爬虫我都是拿Java写的,用了Go之后发现除了处理Json比较难受, ...
我有在考虑,用第三方json库做一个json扩展。原生json库确实不太适合做爬虫。 thepoy 发表于 2021-7-25 13:44
我有在考虑,用第三方json库做一个json扩展。原生json库确实不太适合做爬虫。
改simplejson?要是能明确声明取出来的数据类型是JsonObject还是JsonArray,并且取完以后得到的还是Json就好了 好像有点难技术不够,哎 json最近在用gjson 艾莉希雅 发表于 2021-7-25 14:05
json最近在用gjson
我想的就是用 gjson 在框架内写一个 json 扩展,gjson 非常适合在爬虫中使用 侃遍天下无二人 发表于 2021-7-25 13:48
改simplejson?要是能明确声明取出来的数据类型是JsonObject还是JsonArray,并且取完以后得到的还是Json ...
没了解过 simplejson,主要用 gjson thepoy 发表于 2021-7-25 14:09
没了解过 simplejson,主要用 gjson
这个不是谷歌给安卓内置的json解析器吗 侃遍天下无二人 发表于 2021-7-25 14:41
这个不是谷歌给安卓内置的json解析器吗
你说的是java吧?跟 Go 好像没什么关系