通用网络信息采集器(爬虫)设计方案
2014-01-08 15:20
288 查看
一、引言
Heritrix3.X与1.X版本变化比较大,基于此带来的Extractor定向扩展方法也受到影响,自定义扩展方面因为接口的变化受阻,从而萌生了通用网络信息采集器设计的想法。一直没有一个好的网络信息采集器,必须能够适应下载对象的多样性和下载内容的复杂性。比如需要同时下载100多家主流媒体的新闻信息,并解析入库等。本文围绕通用网络信息采集器的设计展开。
二、需求分析
一个好的网络爬虫必须满足通用性、多任务、定向性和可扩展性。
![](http://images.cnitblog.com/blog/496966/201401/08143643-65ff304bc45143908e1bf4cf17fd8540.jpg)
通用性是指可以满足不同格式下载对象的下载,如HTML、JS、PDF等等;多任务是指同时可以执行多个下载任务,即不同的网络站点;定向性是指可以根据自己的业务需求定向下载,即只下载自己关注的网页,其他无关页面自动过滤掉。比较好的是开源社区有很多可用的资源,比较不好的是能同时满足以上需求的软件非常少,好在Heritrix3.X就是能够满足的之一,不过需要自己编写代码,扩展Extrator,实现其定向下载。
三、架构设计
以下部分是期待中网络信息采集器的逻辑架构。如下图所示:
![](http://images.cnitblog.com/blog/496966/201401/08144103-d2074c94387b45bbaaa84d137a8c02a3.jpg)
每一个目标任务代表一个下载渠道,比如sina、sohu等,下载规则负责URL过滤,只下载满足规则的内容,比如新闻;解析规则负责已经下载下来的内容的过滤,只选择我想要的东西,比如新闻标题、内容、评论等;元数据规则定义数据入库规则,任务与元数据规则关联实现自动入库。
四、成果展现
博客园躺着中枪了,以我个人的技术博客作为下载目标,以下部分展现的是我通过定向扩展后的下载结果:
![](http://images.cnitblog.com/blog/496966/201401/08145642-0265ecba156948abbdb9b552cbc0b034.jpg)
P文件夹中的内容,代表具体的网页:
![](http://images.cnitblog.com/blog/496966/201401/08145653-12cdd37be81d48a9a5f2ea1d1b14b064.jpg)
五、遗留问题
1.URL发现是否有必要独立,单独做成工具,根据入口网址+过滤规则,输出待下载对象的URL地址?当前采用的模式是复合式,逻辑上分离,物理上耦合。
2.如何实现增量下载和循环运行,当前任务启停是通过人工干预。需要改进。
Heritrix3.X与1.X版本变化比较大,基于此带来的Extractor定向扩展方法也受到影响,自定义扩展方面因为接口的变化受阻,从而萌生了通用网络信息采集器设计的想法。一直没有一个好的网络信息采集器,必须能够适应下载对象的多样性和下载内容的复杂性。比如需要同时下载100多家主流媒体的新闻信息,并解析入库等。本文围绕通用网络信息采集器的设计展开。
二、需求分析
一个好的网络爬虫必须满足通用性、多任务、定向性和可扩展性。
![](http://images.cnitblog.com/blog/496966/201401/08143643-65ff304bc45143908e1bf4cf17fd8540.jpg)
通用性是指可以满足不同格式下载对象的下载,如HTML、JS、PDF等等;多任务是指同时可以执行多个下载任务,即不同的网络站点;定向性是指可以根据自己的业务需求定向下载,即只下载自己关注的网页,其他无关页面自动过滤掉。比较好的是开源社区有很多可用的资源,比较不好的是能同时满足以上需求的软件非常少,好在Heritrix3.X就是能够满足的之一,不过需要自己编写代码,扩展Extrator,实现其定向下载。
三、架构设计
以下部分是期待中网络信息采集器的逻辑架构。如下图所示:
![](http://images.cnitblog.com/blog/496966/201401/08144103-d2074c94387b45bbaaa84d137a8c02a3.jpg)
每一个目标任务代表一个下载渠道,比如sina、sohu等,下载规则负责URL过滤,只下载满足规则的内容,比如新闻;解析规则负责已经下载下来的内容的过滤,只选择我想要的东西,比如新闻标题、内容、评论等;元数据规则定义数据入库规则,任务与元数据规则关联实现自动入库。
四、成果展现
博客园躺着中枪了,以我个人的技术博客作为下载目标,以下部分展现的是我通过定向扩展后的下载结果:
![](http://images.cnitblog.com/blog/496966/201401/08145642-0265ecba156948abbdb9b552cbc0b034.jpg)
P文件夹中的内容,代表具体的网页:
![](http://images.cnitblog.com/blog/496966/201401/08145653-12cdd37be81d48a9a5f2ea1d1b14b064.jpg)
五、遗留问题
1.URL发现是否有必要独立,单独做成工具,根据入口网址+过滤规则,输出待下载对象的URL地址?当前采用的模式是复合式,逻辑上分离,物理上耦合。
2.如何实现增量下载和循环运行,当前任务启停是通过人工干预。需要改进。
相关文章推荐
- 通用网络信息采集器(爬虫)设计方案
- 网络工程设计方案
- 【免费下载】红色大气交互设计网络公司企业通用织梦模板
- 一种高效、可自动扩容、缓存、永久存储通用方案设计
- 【转】3D交互式网络地理信息软件性能比较方案
- Linux企业级项目实践之网络爬虫(3)——设计自己的网络爬虫
- 电商实训四:网络营销方案设计及实施
- 基于DSP/BIOS和NDK的嵌入式网络操作系统设计方案
- 网络采集器Demo:Jsoup+Java多线程实现[爬虫](下)
- (一)表层网络信息获取(Python引擎爬虫)
- 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(3): 抓取amazon.com价格
- 20144303 20145239 《信息安全系统设计基础》实验五 网络通信
- 关于布线设计方案+网络产品的一个网站
- Android 开发自己的网络收音机1——功能要求及设计方案
- 20145310《信息安全系统设计基础》实验五 网络通信
- 20145310《信息安全系统设计基础》实验五 网络通信
- iOS应用架构谈(三):网络层设计方案(上)
- 设计和实现高水平分布式网络爬虫
- 信息网络系统建设设计阶段的监理