网络爬虫Larbin的学习(三)——整体架构

这一回开始对Larbin的源代码进行学习。经过一段时间的学习,我发现larbin的架构还是不错的。而且他的架构中使用到了许多技术,在阅读源代码的过程中也可以捡起以前学过的东西。

进入%LARBIN_HOME%/src,我们可以看到许多源文件,这些源文件主要分为两大类:

(1)主控类
main.cc : 主控程序,调度所有代码进行工作
global.h,global.cc : 实际上的核心程序,包含爬虫的所有核心内容

(2)配置类
option.h : 策略方面的配置
types.h : 具体数值的配置

关于具体数值的问题,我们在第二部分已经说过了,下面重点看main.cc

(1)在main函数的起始处,对global类进行初始化。global类是整个爬虫的核心,因此对他的分析要慢慢深入。在此我们只要知道,global类中有许多静态成员变量,也就是说可以作全局变量使用,这里主要就是对他们进行初始化。

(2)waitbandwidth() 等待带宽满足需要
(3)input() 将需要爬取的seed URL装载进来
(4)sequencer() 对将要爬取的页面进行缓冲,确定每一轮可以进行爬取的页面
(5)fetchDns()  获取待爬取页面的IP地址和端口号,这需要通过练习DNS服务器将URL进行转换
(6)fetchOpen() 获取当前网页
(7)checkAll() 做一些检验和网页链接分析(也是我们可以定制化的一部分)

这几部基本上包含了一个爬虫的特征,那么对于一个爬虫来说,需要考虑的问题还有很多。

比方说网页分析与网页保存问题。在爬虫爬取过程中,应该花多大的工夫去分析一个网页?网页的保存形式应该是怎样?

这些我们将在后面做详细地分析与介绍。

下一部分将对一些基本数据结构做一些介绍

猜你喜欢

转载自hsmyy198712.iteye.com/blog/765064