⼀、引⾔
时规带
气动真空阀
Heritrix3.X与1.X版本变化⽐较⼤,基于此带来的Extractor定向扩展⽅法也受到影响,⾃定义扩展⽅⾯因为接⼝的变化受阻,从⽽萌⽣了通⽤⽹络信息采集器设计的想法。⼀直没有⼀个好的⽹络信息采集器,必须能够适应下载对象的多样性和下载内容的复杂性。⽐如需要同时下载100多家主流媒体的新闻信息,并解析⼊库等。本⽂围绕通⽤⽹络信息采集器的设计展开。⼆、需求分析
⼀个好的⽹络爬⾍必须满⾜通⽤性、多任务、定向性和可扩展性。
通⽤性是指可以满⾜不同格式下载对象的下载,如HTML、JS、PDF等等;多任务是指同时可以执⾏多个下载任务,即不同的⽹络站点;定向性是指可以根据⾃⼰的业务需求定向下载,即只下载⾃⼰关注的⽹页,其他⽆关页⾯⾃动过滤掉。⽐较好的是开源社区有很多可⽤的资源,⽐较不好的是能同时满⾜以上需求的软件⾮常少,好在Heritrix3.X就是能够满⾜的之⼀,不过需要⾃⼰编写代码,扩展Extrator,实现其定向下载。
三、架构设计
以下部分是期待中⽹络信息采集器的逻辑架构。如下图所⽰:
每⼀个⽬标任务代表⼀个下载渠道,⽐如sina、sohu等,下载规则负责URL过滤,只下载满⾜规则的内容,⽐如新闻;解析规则负责已经下载下来的内容的过滤,只选择我想要的东西,⽐如新闻标题、内容、评论等;元数据规则定义数据⼊库规则,任务与元数据规则关联实现⾃动⼊库。 换热器清洗四、成果展现
浏阳霉素 博客园躺着中了,以我个⼈的技术博客作为下载⽬标,以下部分展现的是我通过定向扩展后的下载结果:
P⽂件夹中的内容,代表具体的⽹页:全局消息钩子
中药煎药器五、遗留问题
1.URL发现是否有必要独⽴,单独做成⼯具,根据⼊⼝⽹址+过滤规则,输出待下载对象的URL地址?当前采⽤的模式是复合式,逻辑上分离,物理上耦合。
2.如何实现增量下载和循环运⾏,当前任务启停是通过⼈⼯⼲预。需要改进。