author:vophan
编码不易,Star me!
Update!
让大家等了好久,迎来了第二次更新。
Gospider正式更名为SpiderHog
这次对代码进行了彻底重构,让使用更加简易,并且加入许多新的内容:
- 实现log系统,日志分割
- 包装proxy,与代理池完美结合,方便插拔
- 加入web api,监控任务量以及最新日志查看
- 增加稳定性与可用性,加入超时机制,自动检测代理存活,自动更换代理
- ..........
Waiting for implement
这次重构,其实我认为还是有许多地方可以优化:
- Fetcher中可以加入goroutine pool将爬取操作并行化,发挥极致性能,但是由于架构原因还没有想到好的方法,将pool包装到Fetcher中
- 需要更多的web api
- 需要为监控api写一个前端
- .......
How to use?
首先,如果不使用代理:
proxysrcservice.goLinkExtractContentExtratSave
如果使用代理:
- 首先得配置代理池,我这里使用了proxy_pool的开源实现,结合docker简单方便,如果自己实现代理池,需要自己修改接口。
- 然后就上面一样了
Web api
gin
-
127.0.0.1:3000/api/v1/log 获取日志内容
-
127.0.01:3000/api/v1/chan 获取任务队列中数量
Demo
这里,我们举个例子:
我们爬取法邦网的法律文书作为演示:
首先配置代理池:
settings.json
service.go
然后运行
To be Continue
还是希望有更多的gopher加入我,一起来完善这个项目。
也希望得到大家的star,算是对我的一种支持!
what's the GoSpider?
爬虫博客电商scrapy
但是,这并不代表他只是一个入门学习项目,虽然是抱着学习的心态去做这个框架,但是,并没有想要放弃这个项目,我会维护这个项目,并不断更新,也希望有更多的朋友,小白,大佬一起加入进来。
Structure
--GoSpider----conf 配置文件解析
|--demo 框架使用实例
|--spider 爬虫核心代码
|--test 测试代码
|--userAgent userAgent文件
|--log 日志文件
|--utils 工具
PSpider
How to use it
目前,如果想要使用它,只需要:
main.gomain.goparserMiddleLinkRuleLinkExtractSaversaveRulesettings.json
运行!
For Learner
如果,你也像我一样,想要通过这个项目,熟悉Go语言,那么,实现它,你将:
- 熟悉Golang的面向对象,接口,所谓的继承与多态,实际上的组合与接口
- 了解Golang中的gorooutine,channel,sync,select等有关并发与协程的操作
- 了解Golang中的http的相关操作
- 熟悉Golang的语法
............
For Developer
欢迎每一个想要加入的朋友,一起交流,毕竟他还是第一版,所以肯定大大小小的不足,所以,我需要你们:
- 爬虫框架的log模块尚未实现
- 爬虫框架的proxier模块尚需完善
.........
总之,我很菜,需要大家的帮助
Contact Me
qq809866729
wx