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