说是架构设计,但是爬虫框架大同小异,这里也是说明一下原理,把之前做的一些功能给模块化到架构中。
先上个图吧
这就是引擎中各组件的任务职能,各施其职发挥出种组件的特点:
1、种子就是原始URL没什么好说明的
2、爬虫引擎
对爬虫种子或其它任务进行调度
3、网页获取器
主要任务是对网页内容进行读取,包括网页编码解析及转码等工作
4、解析器
对网页内容进行解析,如何解析是要自己开发逻辑解析器的,这个解析是在创建种子或子任务时明确指定的
5、任务队列
存储要爬取的任务
根据上述内容,框架设计出如下几个模块:
框架功能详细说明:
github 代码 :https://github.com/arno99x/go_study/tree/master/crawler_single