像猪一样生活

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  5 随笔 :: 4 文章 :: 21 评论 :: 0 引用

作为知识管理中最核心的部分,知识采集器无疑具有着非常重要的作用,是我们所有工作和服务的基础,在这一部分我们就我们的系统根据我们的需求进行分析。
   先来看一下我们的采集器都作了哪些工作?

和普通的爬虫一样,需要实现给一个入口的网页地址,那么它能够自动的进行地址的分析和解析,并逐一的对地址进行请求并获取内容。获取后可以保存起来。

首先,就拿获取来说,我们的爬虫是针对特定站点服务的,所以我们在这里第一步实现页面的抓取,这是核心类。在此基础上我们需要对该类进行进一步的包装。包装之后­就可以根据我们提供的站点列表中进行抓取,并且抓取的时候按照我们定义的规则进行抓取。举个例子,我们定义只一些正则表达式,根据匹配的进行进行获取。并且这种­匹配我们期望是可以进行嵌套的。

其次,是我们的存储工作,抓取为我们的提供了内容,那么如何进行这些内容的存储呢?因为在我们的存储直接关系到我们未来的检索。在这里需要考虑到系统的运行会导­致知识库内容的大量增加,如果仅使用单一的数据库肯定无法满足需要,所以,在存储的时候,我们需要考虑到采用分区表,甚至是分布式数据库的应用,只有这样才能够­缓解我们的数据存储和查询的压力。因为我们的产品毕竟不像是BI那样需要对数据进行分析,对我们来说前期的数据组织是非常重要的。在这里我们有Oracle和S­QL
SERVER 2005两种选择,这里我们选择SQL SERVER 2005。
   好了,采集器做了三种工作。

第一,获取网页,第二,分析网页,第三,存储网页。

我们在获取的时候需要编写核心类或者组件,便于我们以后应用在其他的方面,所以我们把获取的规则这部分扩展出来,可以外部的进行规则定义。

在分析网页这部分,可以进行分析的定义,这样我们可以保证在抓取的时候去掉我们不需要的部分。而且我们必须保证我们的分析可以进行多次的调用分析。

在存储页面时需要考虑的是进行分布式的存储,这就要求我们存储时进行自动化的存储,根据一定的规则逻辑存储到不同的服务器上面。

上面就是我们对网络蜘蛛的分析,基于上面这些分析,我们就对系统中的知识采集器有了明确的认识。更为具体的设计我将会在以后的过程中陆续跟进。

posted on 2006-01-03 10:59  代码成就人生  阅读(...)  评论(...编辑  收藏