一个小型的网页抓取系统的架构设计
网页抓取服务是互联网中的常用服务,在搜索引擎中spider(网页抓取爬虫)是必需的核心服务。搜索引擎的衡量指标“多、快、准、新”四个指标中,多、快、新都是对spider的要求。搜索引擎公司比如google、baidu都维护者自己负责的spider系统。当然他们的系统很复杂,在这里我们介绍一个小型的网页抓取系统的架构,目标是快速的抓取某个或者几个指定的网站的数据,它的作用有很多,比如做竞品分析,还有其他不可告人的J。
下面这个小型的网页抓取系统,分成下面几个部分:
1)网页种子文件,这个里面配置要抓取的链接是我们抓取服务的起点;
2)链接池,链接的FIFO队列,种子的link会先入这个队列;
3)抓取线程,从链接池中获取链接,并下载网页生成的网页数据放到网页池;
4)网页池,网页的FIFO队列,抓取的网页都会进入到这个pool;
5) 抽取线程是系统的核心,它负责根据配置的模板抽取网页中指定的链接与数据,将抽取到个格式化数据入到抽取线程,将抽取出来的新的链接放到链接库;
6)调度线程,负责链接的调度策略,将选择合适的链接放到链接池队列;
系统架构如下:
原文地址:http://blog.csdn.net/daofengliu/article/details/40891161