基于BerkeleyDB数据库的主题爬虫系统的制作方法

文档序号:9261442阅读:281来源:国知局
基于Berkeley DB数据库的主题爬虫系统的制作方法
【技术领域】
[0001] 本发明属于互联网信息采集技术范畴,具体为基于BerkeleyDB数据库的主题爬 虫系统。
【背景技术】
[0002] 随着网络资源的爆炸性增长,网络中网页的规模已经非常庞大。虽然机器性能相 对有了不少的提高,但是面对数目如此巨大的URレ抓取整个Web上的网页是不现实的。对 于网络爬虫,总是有"过于丰富"的U化资源。对网络爬虫的研究开始转移到使用一种比较 好的URL选择或者排序策略,对URL进行排序或者取舍,尽量把质量高的或者接近"固定主 题"的网页优先抓取下来,而不再单纯追求网页覆盖度。面向主题的Web信息采集(又叫聚 焦网络爬虫),主要是指那些选择性地捜寻与预先定义好的主题相关页面进行爬取的信息 采集,主题一般可W是关键词,也可W是样本文件,其和基于整个网络的信息采集不同,为 了节省软硬件资源与较快地更新页面,基于主题的信息采集并不采集那些和特定主题无关 的页面。
[0003] 网络爬虫是捜索引擎的组成部分,其主要工作是抓取网页并下载到本地磁盘。传 统的网络爬虫主要是根据一个或几个初始的种子站点进行抓取网页,在抓取过程中不断的 对已下载到本地磁盘的网页进行分析,之后提取其中的U化超链接,放入到待爬取队列,不 断地重复此过程,直到满足终止条件。与通用爬虫相比,主题爬虫的爬取工作就较为复杂, 它需要首先对网页进行分析过滤,根据相关度的大小剔除掉一些与主题无关的页面的链 接,将主题相关的页面链接放入到待爬取队列,之后主题爬虫会按照一定的爬取策略从U化 队列中选择要爬取的U化,不断地重复此过程直到满足用户设定的爬取终止条件。此外由于 需要对爬取下来的网页进行分析过滤有时还需要为其建立索引,W方便计算网页的主题相 关度,同时根据分析的结果对W后的抓取给出反馈和指导。
[0004] 为了过滤掉无关页面,只保留和主题相关的页面链接进行爬取,本发明采用了 Best-FirstSearch捜索策略,即最佳优先捜索策略,根据网页分析算法首先预测待爬取 U化所对应页面的主题相似性,再从中选择一个或着几个U化进行爬取。同时该捜索算法 是局部最优的,在其爬取路径上很多与主题相关的网页可能会被忽略,所W在实际实现该 算法时做了相应的改进W跳出局部最优点。同时在计算主题相关度时本发明采用了余弦距 离计算方式,在计算特征向量的特征值时采用了改进的TF*IDF算法。为了提高系统性能, 本发明采用了Berkel巧DB数据库。Berkel巧DB是一个嵌入式数据库,它适合于管理海量 的、简单的数据。关键字/数据化ey/value)是BerkeleyDB用来进行数据库管理的基础。 每个key/value对构成一条记录。而整个数据库实际上就是由许多该样的结构单元所构成 的。通过该种方式,开发人员在使用BerkeleyDB提供的API访问数据库时,只需提供关键 字就能够访问到相应的数据。由于BerkeleyDB数据库对数据的插入采用的是哈希算法, 因此能提高查重速度。

【发明内容】

[0005] 本发明的目的在于提供一个主题爬取工具,能够自动采集专业领域的特定主题信 息。具体来说,本
【发明内容】
包括W下几点。实现了主题相关度计算、网页爬取、用户爬取定 制设置界面、用于主题网页爬取的BerkeleyDB数据库等方面的功能,从而能为用户提供专 业领域信息采集的功能。
[0006] (1)主题爬虫网页爬取模块:网页爬取模块是主题爬虫系统的核屯、模块,主要完成 与特定主题相关网页的爬取。首先对网页进行分析,根据主题相关性算法和爬取策略对网 页进行过滤,只保留与主题相关的网页的链接并将其加入到待爬取U化队列,之后再根据 网页爬取策略选择下一个要爬取的页面的U化,循环重复此过程,直到满足系统终止条件。
[0007] (2)BerkeleyDB数据库模块;BerkeleyDB数据库对数据的插入采用的是哈希算 法,因此其查重速度是相当快的,在创建数据库后在网页下载的过程中将其U化和概要信 息插入到数据库中,在创建数据库配置对象时对该数据库设置延迟写功能,当在内存中存 储了指定大小的数据时再一次写入磁盘,提高了系统性能。
[0008] (3)主题相关度计算模块:主要是采用改进的TF*IDF算法基于向量空间模型完成 对网页主题相关度的计算。在计算主题相关度时需要对网页中包含的主题关键词进行统 计,需要先对网页建立索引并进行中文分词。本系统中建立了两种索引,一种是对下载到本 地的单个页面建立索引,另一种是对下载到本的所有页面建立索引(主要用于计算IDF值)。
[0009] (4)UI模块;主要是将主题爬虫系统实现的功能通过用户界面提供给用户进行使 用,主要包括参数设置、运行和统计几个选项卡,在参数设置界面用户可W选择爬取的主题 词类W及种子网址和线程数,在运行界面会给出网址信息、已下载网页数、已分析U化数、 待爬取网页数W及有效网页数,在统计选项卡中会W图形方式呈现网页爬取情况。
[0010] (5)封装Bean;设立了两个封装Bean--UrlSerial和RunningOptionBean,前者 主要实现对U化的封装和序列化,W方便在抓B数据库中存储,同时由于需要在U化优先级 队列中根据该封装Bean的相关度对其进行排序,因此又需要将其定义为一个比较器。而 Running化tionBean类主要是对网络爬虫在运行时一些必需的信息的封装,W方便在其他 程序中进行访问,同时完成对关键词集合的设置。
【附图说明】
[0011] 图1为主题爬虫体系结构; 图2为主题爬虫系统参数设置界面; 图3为主题爬虫系统运行界面; 图4为主题爬虫系统参数统计界面。
【具体实施方式】
[0012] 为使本发明的目的、技术方案及优点更加清楚明白,W下对本发明做进一步的详 细说明。本发明采用MyEclipse8. 5+BerkeleyDB工具实现。
[0013] 1.主题爬虫体系结构 主题爬虫体系结构如图1所示,其中包括页面下载、页面分析、相关度计算、已访问页 面信息、U化重要性评分、U化队列几个组成部分,具体说明如下。
[0014] (1)页面下载:从U化优先级队列中取出队首元素,通过Apache工具类 化化Client对该U化对应的Web页面进行下载,保存在本地磁盘。
[0015] (2)页面分析:主要负责对页面下载模块爬取到本地磁盘的Web页面进行分析,使 用HttpParser工具类进行解析,提取其中的URL、错文本、网页标题、网页内容等信息。
[0016] (3)相关度计算;此模块主要根据页面分析模块所提取出来的信息(该里是除去 html标签后的所有内容)作中文分词解析,并使用相关度分析算法计算出页面相关度(该里 是主题特征向量的相关度),可能还需要和已访问的页面信息进行交互,同时将计算出来的 信息保存,W便后续使用(在U化优先级队列中要用到)。
[0017] (4)已访问页面信息;该些信息主要保存在BerkeleyDB数据库中,其主要作用是 持久化已访问页面的U化等信息,使用BerkeleyDB的高性能查取元素的特性进行U化消 重。
[0018] (5)U化重要性评分:根据相关度计算模块计算出来的Web页面的相关度值,对该 页面中所包含的U化进行一个重要性评分,然后根据评分决定是否将满足要求(达到设定 阔值)的网页的U化放入待访问优先级队列,本系统对不满足要求的U化和错误的无法访问 的U化直接丢弃,不做进一步的处理。
[0019] (6)U化队列;此处的U化队列主要指待访问的U化优先级队列,其中存放的是根 据U化重要性从大到小进行排序的U化队列,对于每次放入U化都需要进行一次排序操作, 使得页面爬取模块每次取得的U化都是重要性最大的U化。
[0020] 2.主题相关度计算方法 将文档表示为空间向量,通过对空间向量之间的相似度来表示文档之间的相似性。其 中相似性计算采用余弦距离方式:
(1) 其中,cos(任A)表示用户查询得和文档A之间的相似性。g代表查询的特征向量,r代表文档的特征向量。该里设定一个阔值r,将相似度值和该阔值进行比较,大于该阔值就 说明满足主题相似性,否则就说明该页面和特定主题无关。
[0021] 除此之外,需要对网页中的主题关键词集合进行统计,本系统采用的是改进的 TF*IDF特征值计算方法。用TF表示指一个词在网页文档中出现的次数,该里对其加W规范 化,采用的计算公式如下: 〇 + (!- 〇)XTF/Max{Tf) (2) 其中,〇为调节因子;77表示在文档中该个单词的实际出现次数;巧表示在所有 关键词在该文档中出现次数最多的那个单词对应的出现次数。
[0022] IDF表示特征词在整个文档集合中的相对重要性,弥补TF只考虑关键词在单个文 档中的出现次数而忽略整个全局文档的缺点。其计算公式为: IDF,二\〇认N/n) (3) 其中,如戈表文档集合中的文档数,A代表特征单词k在文档集合的多少个文档中出现 过。
[0023] 最终的特征向量的特征权值计算公式为: I^WrfXIDF (4) 3.主题爬虫系统的实现 主题爬虫系统主要由网页爬取模块、B
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1