论文部分内容阅读
随着计算机与互联网的日益普及与应用,在10年左右的时间里互联网上至少产生了50亿的网页,浩如烟海的互联网信息极大地促进了搜索引擎技术的蓬勃发展,诞生了我们所熟知的Google、Yahoo、Baidu等一大批搜索引擎。据CNNIC统计,搜索引擎已成为继电子邮件后的第二大应用[1]。目前搜索引擎主要发展方向有通用搜索引擎以及垂直搜索引擎两种,两者的主要区别是信息覆盖的领域和范围,但是两类搜索引擎反映的信息普遍时效性较差。
网络爬虫是一种对远程信息资源进行抓取的网络应用程序,它把远程信息抓取并保存到本地。Lucene是一种开源的通用本地信息检索框架,相对于传统的一些信息应用提供了更快的反应速度。RSS(ReallySimpleSyndication),也称聚合内容,作为一种网络信息推送技术在各大门户站点得到了广泛应用。RSS订阅机制使我们可以及时地获取最新资源信息,摒弃过时信息的干扰。通过对网络RSS资源的抓取检索发现信息能够充分保证信息的及时性,这也正是本文的研究目标。
本文在阅读了大量参考文献的基础上,对部分开源蜘蛛以及Lucene代码进行深入分析研究,提出了一种针对网络RSS信息抓取并检索的方案:基于RSS爬虫的搜索引擎框架。本文的主要工作及创新性可体现在以下几个方面:
(1)通过对网络爬虫Jobo基本原理以及部分开源代码进行研究,完成了RSS网络爬虫的设计编程工作,针对性地设计并实现了代码框架:
利用Tidy将Html内容转化为DOM树形式,遍历DOM树提取网页内部包含的文本链接地址以及图片链接地址;
利用MD5算法计算网页地址的32位hash值表示已抓取网页并存储为文件列表形式,新的待抓取网页地址也利用相同算法计算后与文件列表中的值对比,有相同值就表示已抓取过,以此来屏蔽已抓取网页连接;
网页地址32位hash值存储过程中实现了缓存机制,提高了磁盘读写效率。
(2)探讨了Lucene提供的分词,过滤,转换等过程,实现了以ICTCLAS中文分词系统为基础的自定义分析器;
(3)研究Lucene网页索引过程,针对性的设计了多线程索引提高索引效率,结合项目经验实现了基于RSS的搜索引擎,实现了所检索信息的及时性。