通用网络信息采集器(爬虫)设计方案
2014-01-08 15:00
274 查看
一、引言
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.如何实现增量下载和循环运行,当前任务启停是通过人工干预。需要改进。
相关文章推荐
- 通用网络信息采集器(爬虫)设计方案
- 第九篇 ERP实施项目中需求分析及方案设计的通用思路
- 20145240 《信息安全系统设计基础》实验五 网络通信
- 20145302张薇 20145308刘昊阳 《信息安全系统设计基础》实验五 网络通信
- 在线研讨会网络视频讲座 - 方案设计利器Autodesk Infrastructure Modeler 2013
- crawler_分布式网络爬虫的设计与实现_设计图
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
- 网络、电话系统设计方案
- 一个大数据方案:基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎
- Python 网络爬虫与信息获取(一)—— requests 库的网络爬虫
- Python爬虫——2017高校网络信息安全管理运维挑战赛:快速计算
- python网络爬虫实战3——抓取新闻内文相关信息
- 如何给多个子系统设计一个简单通用的权限管理方案?(详细讲解及源代码下载)
- XXX网络实施方案之活动目录角色夺取与残余信息清理 推荐
- 基于Hadoop开发网络云盘系统架构设计方案第一稿
- 网络游戏用户分流设计浅淡(一)--新手村分流方案