通用网络信息采集器(爬虫)设计方案

1、引言网络

  Heritrix3.X与1.X版本变化比较大,基于此带来的Extractor定向扩展方法也受到影响,自定义扩展方面由于接口的变化受阻,从而萌生了通用网络信息采集器设计的想法。一直没有一个好的网络信息采集器,必须可以适应下载对象的多样性和下载内容的复杂性。好比须要同时下载100多家主流媒体的新闻信息,并解析入库等。本文围绕通用网络信息采集器的设计展开。架构

2、需求分析工具

  一个好的网络爬虫必须知足通用性、多任务、定向性和可扩展性。架构设计

通用性是指能够知足不一样格式下载对象的下载,如HTML、JS、PDF等等;多任务是指同时能够执行多个下载任务,即不一样的网络站点;定向性是指能够根据本身的业务需求定向下载,即只下载本身关注的网页,其余无关页面自动过滤掉。比较好的是开源社区有不少可用的资源,比较很差的是能同时知足以上需求的软件很是少,好在Heritrix3.X就是可以知足的之一,不过须要本身编写代码,扩展Extrator,实现其定向下载。设计

3、架构设计对象

  如下部分是期待中网络信息采集器的逻辑架构。以下图所示:blog

 每个目标任务表明一个下载渠道,好比sina、sohu等,下载规则负责URL过滤,只下载知足规则的内容,好比新闻;解析规则负责已经下载下来的内容的过滤,只选择我想要的东西,好比新闻标题、内容、评论等;元数据规则定义数据入库规则,任务与元数据规则关联实现自动入库。接口

4、成果展示资源

  博客园躺着中枪了,以我我的的技术博客做为下载目标,如下部分展示的是我经过定向扩展后的下载结果:博客

P文件夹中的内容,表明具体的网页:

5、遗留问题

  1.URL发现是否有必要独立,单独作成工具,根据入口网址+过滤规则,输出待下载对象的URL地址?当前采用的模式是复合式,逻辑上分离,物理上耦合。

  2.如何实现增量下载和循环运行,当前任务启停是经过人工干预。须要改进。

相关文章
相关标签/搜索