SpiderHog 轻量级异步爬虫框架
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

如果使用代理:

  1. 首先得配置代理池,我这里使用了proxy_pool的开源实现,结合docker简单方便,如果自己实现代理池,需要自己修改接口。
  2. 然后就上面一样了

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语言,那么,实现它,你将

  1. 熟悉Golang的面向对象,接口,所谓的继承与多态,实际上的组合与接口
  2. 了解Golang中的gorooutine,channel,sync,select等有关并发与协程的操作
  3. 了解Golang中的http的相关操作
  4. 熟悉Golang的语法

............

For Developer

欢迎每一个想要加入的朋友,一起交流,毕竟他还是第一版,所以肯定大大小小的不足,所以,我需要你们

  1. 爬虫框架的log模块尚未实现
  2. 爬虫框架的proxier模块尚需完善

.........

总之,我很菜,需要大家的帮助

Contact Me

qq809866729
wx