内容采集器(Heritrix3.X与1.X版本变化比较大的需求分析)
优采云 发布时间: 2021-12-14 16:45内容采集器(Heritrix3.X与1.X版本变化比较大的需求分析)
一、简介
Heritrix3.X和1.X版本变化很大,基于此的Extractor定向扩展方式也受到影响。自定义扩展因接口变化而被屏蔽,进而产生通用网络信息采集器设计思路。从来没有一个好的网络信息采集器,必须能够适应下载对象的多样性和下载内容的复杂性。例如,100多个主流媒体的新闻信息需要同时下载,并在数据库中进行分析和存储。本文重点介绍通用网络信息采集器的设计。
二、 需求分析
一个好的网络爬虫必须满足*敏*感*词*性、多任务、定向和可扩展性。
通用性是指能够下载不同格式的对象,如HTML、JS、PDF等;多任务是指能够同时执行多个下载任务,即不同的网络站点;定向是指能够根据自己的业务需求有针对性的下载,即只下载自己关心的网页,其他不相关的页面会自动过滤掉。好消息是开源社区有很多可用的资源。不好的是,能同时满足上述要求的软件很少。幸运的是,Heritrix3.X 是可以满足它的其中之一,但是您需要编写自己的代码并对其进行扩展。Extrator,实现其定向下载。
三、建筑设计
以下部分是预期网络信息采集器的逻辑结构。如下所示:
每个目标任务代表一个下载频道,如新浪、搜狐等,下载规则负责URL过滤,只下载符合规则的内容,如新闻;解析规则负责过滤下载的内容,只选择我想要的东西。例如,新闻标题、内容、评论等;元数据规则定义了数据存储规则,任务和元数据规则关联起来实现自动存储。
四、成果展示
博客园是躺着拍摄的,以我个人的技术博客为下载对象。下面是我定向扩展后的下载结果:
P文件夹中的内容代表一个特定的网页:
五、遗留问题
1.URL发现是否需要独立,做成一个单独的工具,根据入口URL+过滤规则输出待下载对象的URL地址?当前模型是复合的、逻辑上分离的和物理上耦合的。
2.如何实现增量下载和循环运行,当前任务的启动和停止是通过人工干预。需要改进。