1.基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,主要包括:一是针对基于链接结构的网页分析算法HITS算法及基于VSM向量空间模型的主题相似度计算的网页分析算法进行改进,提出一种改进的网页蜘蛛模型算法,对网页信息的综合价值进行评估;二是在对云平台网页蜘蛛进行云平台实现的过程中,提出了一种改进的任务分配算法,兼顾均匀分配及各个爬取子结点负载情况,提高云平台网页蜘蛛系统的爬取放率和准确性;三是提出一种基于Hadoop的云平台网页蜘蛛的总体框架模型,在文件系统HDFS上设计实现了云平台网页蜘蛛的存储结构,并基于模块划分对各个功能模块进行MapReduce算法实现;四是实现基于Hadoop的云平台网页蜘蛛系统并进行测试;
本发明的云平台网页蜘蛛系统的基本执行流程为:第一,用户根据想要获得的关联主题信息挑选一些质量较高的初始URL种子集合并放入到种子URL文件中,初始URL种子集合作为系统添加搜索的起点,系统挑选种子URL文件中的URL链接进行网页信息的爬取;
第二,系统在获得相应的URL链接之后,与URL链接所对应的Web服务器进行网络连接,若网络连接建立失败且等待超过一定的时间,系统放弃该网络连接并标记此URL链接,从URL链接队列中选择下一个URL链接进行访问;
第三,如果和Web服务器成功建立了网络通信,系统应用MapReduce云平台计算模型基于http协议对网页内的信息进行爬取,并将爬取得到的信息存储到文件系统HDFS中;
第四,在网页爬取完成后,系统对网页信息进行进一步的分析,把解析得到的网页内容信息存储在文件系统HDFS中的解析网页库中;
第五,将网络页面中包含的URL链接解析出来进行链接的去重过滤操作;
第六,将经过链接去重过滤后的URL链接存储在文件系统HDFS中的链出URL库中,以便以后的爬取工作的进行;
第七,若没有满足网页蜘蛛停止的条件,系统根据改进的网页蜘蛛模型对每个URL链接进行综合价值的评估,选择一个优先级最高的URL链接即和指定的主题最相关的网页进行下一步的爬取工作;
改进的网页蜘蛛模型主要设计为:
第1,云平台网页蜘蛛系统给定一个种子URL集合,然后URL切分模块提取出种子URL集合中的URL链接进行URL切分操作,再然后存放在云平台文件系统HDFS中的未抓取URL库中;
第2,网页抓取模块从未抓取URL库中读取相应的URL链接进行爬取,并将抓取到的网页信息存放到位于云平台文件系统HDFS中的Web初始网页库中;
第3,网页解析模块将网络页面中包含的URL链接解析出来并存储在云平台文件系统HDFS中的链出URL库中,并把解析得到的网页内容信息存储在云平台文件系统HDFS中的解析网页库中;
第4,超链接评价器读取云平台文件系统HDFS中的链出URL库,基于HITS算法计算每一个URL链接的Hub权重值及Authority权重值,与此同时,构建主题描述矩阵并由主题描述矩阵和主题网页集合求得主题的向量表示形式,结合词频统计信息和内容结构信息对网页进行向量表示,对主题向量和网页向量使用余弦夹角定理求得关联度值,页面关联度评价器基于关联的主题特征词库将解析得到的网页内容信息进行分词处理并统计特征主题词频之后,基于VSM向量空间模型对网页内容的主题关联度进行计算;
第5,网页蜘蛛综合价值评价器采取改进后的网页蜘蛛模型算法基于链接价值和内容主题关联度价值计算每一个URL链接的综合价值,对待爬取队列中的网页链接进行比较,确定网页蜘蛛下一步爬取URL的次序。
2.基于权利要求1所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,本发明的云平台网页蜘蛛系统的总体框架模型:第一,JobTracker进程在Master结点上进行创建生成,它将种子URL集合切分,然后基于各个Slave结点的运行状态将URL爬取任务分发给各个Slave结点,JobTracker进程还负责实时监控系统的关联运行状态,JobTracker部署在集群中单独的一台计算机结点上,不参与具体的爬取工作;
第二,JobTracker进程将切分后的网页链接URL分配给各个TaskTracker进程,各个TaskTracker进程分别运行在各个Slave结点上,TaskTracker进程在收到JobTracker进程分发给自己的爬取子任务之后,启动相应的Map任务执行对网页信息的爬取工作,相应的Map任务启动多个线程进行网页信息的爬取,Map任务完成之后,将爬取到的信息以<链接URL,内容数据>键值对的方式以中间结果传送给Reduce任务;
第三,在Map任务输出中间结果之后,TaskTracker进程会开启Reduce任务完成网页分析、链接去重过滤及归并操作,并将基于网页内容进行解析得到的链接URL和网页内容信息分别存储到文件系统HDFS中的链出URL库和解析网页库中,TaskTracker进程还会一直通过RPC向JobTracker进程发送心跳heartbeat报告各个结点上的资源使用和任务运行情况。
3.基于权利要求1所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,改进的网页蜘蛛模型采用超链接分析算法HITS对每个候选URL进行超链接结构价值的计算,对每一个URL链接计算其Hub权重值和Authority权重值,这两个值将在网页综合价值的计算中用到,基于HITS算法对每个URL链接vi,它的Hub权重值和Authority权重值的计算公如式1和式2所示:
其中,vi,vj∈B表示vi存在到vj的超链接,vj,vi∈C表示vj存在到vi的超链接,A[vi]、H[vi]表示vi的Hub权重值和Authority权重值,它们是通过不断迭代而计算得到的,在迭代计算的第一步,首先对每个URL链接都赋初值:A[Vi]=1,H[Vi]=1 式3最后,在迭代计算出结果之后,对A[vi]、H[vi]规格化,计算式为式4和式5:其中,vi,vj∈B表示vj存在到vi的超链接,vj,vi∈C表示vj存在到vi的超链接。
4.基于权利要求1所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,本发明改进的网页蜘蛛模型采用基于VSM向量空间模型的TF‑IDF公式计算网页信息内容的主题关联度,依据向量空间模型描述,对于一个网络页面q来说,它被形式化的表示为一个特征词加权向量Q,计算式为式6:
Q={q1,q2,…,qi,…,qm)其中,q1表示特征词di在页面Q中加权值,是通过TF‑IDF公式计算而得到的结果,加权值的计算式为式7,n是主题的特征词向量空间的维数:qi=tfi*idfi式7
其中,tfi表示特征词di在文档Q中的词频,idfi表示特征词di的倒文档频度,倒文档频度的计算式为式8:
其中,mi表示样本页面集中出现的特征词di的页面数,M表示样本页面集的页面总数,页+
面q的主题关联度则通过计算该页面的特征词加权向量Q与主题特征向量U两个向量的内积得出结果,计算式为式9:
+
其中,m表示特征向量U的维数,sim(q)表示页面q的主题关联度,它的值越大就表示页面q的网页信息与主题关联的概率越大,本发明提出的改进的网页蜘蛛模型不将页面q直接定义为是否关联,而是通过计算网页信息与主题关联的概率,然后再基于这个概率值来完成对URL链接综合价值的计算。
5.基于权利要求4所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,评估网页综合价值:在Shark‑Search算法使用向量空间模型计算网页信息内容主题关联度的基础上进行改进,在其中加入链接结构的关联信息,计算式为式10:其中sim(i)代表网页i的主题关联度,fa(i)表示所有链向网页i的网页集合,Inde(i)表示网页i的反向链接数量,即fa(i)中的网页数量,变量q的取值范围是O到l之间,变量q调整链接结构及网页正文二者的比重,te_sim(i)是网页内容与主题的相似度,具体计算如式
11所示:
te_sim(i)=Sim(Q_Text(i),Th)xp+Sim(Q_Tit(i),Th)×(1‑p)式11Q_Text(i)是网页i的正文内容,Q_Tit(i)是网页i的标题信息,Th表示主题的关键词集合,变量p与q一样,它的取值范围是O到1之间,Sim的计算采用基于向量空间模型的TF‑IDF算法计算文档的特征向量,再采用余弦定理求相似度,如式9所示;
依据对超链接结构价值的计算和内容的主题关联度计算,本发明改进的网页蜘蛛模型算法综合考虑网页q的链接价值和内容的主题关联度,并给出了计算网页的综合价值的计算公式,计算式为式12:
Value(i)=(H[i]+A[i])×(s+sim(i))式12其中,Value(i)即是要最终获得的网页q的综合价值,H[i]与A[i]分别表示网页i的Hub权重值和Authority权重值,是基于HITS算法采用式4和式5计算得到的结果,sim(i)表示网页i的主题关联度,采用式10计算得到的结果;另外,在式12中添加一个控制因子s,它的取值范围是O到1之间,这样设计是因为存在一种特殊情况,有些Hub权重值和Authority权重值很高的页面可能指向的另一个主题页面集合,但其本身的网页内容与主题并不关联,这时需要添加一个控制因子来使网页蜘蛛能抓取到更多的主题关联页面。
6.基于权利要求1所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,基于系统总体框架模型,提出本系统采用的未抓取链接库、初始网页库、解析链接库、解析网页库:
未抓取链接库,未抓取URL库存放当前预抓取的URL,是URL切分模块将URL种子文件中读驭得到的URL进行处理之后,存放在文件系统HDFS中的,网页抓取模块从未抓取URL库中获得URL进行具体的网页爬取工作;
初始网页库,初始网页库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息,它们经过处理之后保存在文件系统HDFS中,以便后续网页解析模块使用;
解析链接库解析链接库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息经过网页解析模块解析得到的链接解析数据,它们经过处理之后保存在文件系统HDFS中,以便后续爬取工作的进行;
解析网页库,解析网页库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息经过网页解析模块解析得到的页面解析数据,它们经过处理之后保存在云平台文件系统HDFS中,以便后续的采用;
将以上四个存储结构在基于Hadoop的文件系统HDFS之上具体实现,以供云平台网页蜘蛛系统中的功能模块调用。
7.基于权利要求1所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,系统分成蜘蛛子结点、主控结点、HDFS三部分,主控结点协调蜘蛛子结点之间的爬行,蜘蛛子结点抓取页面,抓取的页面存入HDFS中;
主控结点和蜘蛛子结点之间的信息以及数据交互的工作机制为:第一,主控结点基于自身的配置信息得知整个系统中共部署多少个蜘蛛,由主控结点远程登录的方式启动蜘蛛;
第二,蜘蛛子结点启动后向主控结点发送一个“Ready”状态信息,表明该蜘蛛已经做好准备,可以接受爬行任务;
第三,主控结点收到蜘蛛子结点的“Ready”信息后,生成一个初始任务,即封装一些待抓取的网页的URL,并以文件的形式发送到蜘蛛子结点某个特定的路径下,然后,向蜘蛛结点发送一个“Working”的回复信息,如果主控结点发现当前数据库中无数据,即没有任务可发,而且系统中还有蜘蛛在爬行,它就会向该蜘蛛发送“Wait”回复信息,如果蜘蛛系统属于初次启动或者所有的蜘蛛都处于“Wait”状态,说明用户没有添加爬行任务或者本次爬行完毕,主控结点就会向各个蜘蛛发送“Stop”信息;
第四,蜘蛛子结点基于收到“Working”的回复信息后,到相应的路径下,装载种子URL到抓取队列,如果是首次启动,则启动抓取线程开始抓取任务,如果非首次启动,则在当前爬行完之后继续爬行下一次任务;蜘蛛若收到“Wait”信息,将状态置为“Wait”,爬完当前任务后,处于等待状态,直到主控结点将其唤醒;若收到“Stop”信息,蜘蛛则直接退出;
第五,在抓取页面的过程中,抽取出的URL达到一定量后,会被封装成一个数据文件,即写入到一个文本文件中,蜘蛛将其发送到主控结点的特定路径下,并向主控结点发送“Dada”的状态信息;
第六,主控结点收到“Dada”信息后,到指定路径下装载数据至数据库中;
第七,当蜘蛛即将完成本次抓取任务时,同样会向主控结点发送“Ready”的状态信息,接下去就回到了第一个交互状态。
8.基于权利要求1所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,改进的任务分配算法:通过二级哈希映射算法支持云平台URL分配,并使系统规模动态可扩展,使系统进行高效均衡的云平台URL分配,并且使系统具有很好的动态可配置性;
假设在一次爬行周期内,最大逻辑结点数是logic_num.而当前运行的物理结点数为physic_num,每个爬行结点有两张表:一张是物理结点表,用于存储当前系统各个结点的信息;另一张是逻辑结点表,存储的是logic_num个逻辑结点的信息,如果该结点对应的结点不存在,则该值为O,在标准化处理URL后,将URL进行第一次的哈希映射到相应的逻辑表里的元素上,如果该元素不为O,则取出该ID号,判断是否将该URL路由给其它爬行结点,反之,则通过第二次哈希映射,把该元素上的所有URL均分到系统当前的各个物理结点上,此时再获得对应爬行结点的ID号并判断是否路由该URL,另外,要把URL尽可能平均分配到各个爬行结点上,需选择性能好的哈希函数,为此,本发明设计了一个URL哈希函数:该函数中,在第一次哈希映射中Q=logic_num即逻辑结点数,在第二次哈希映射中Q=physic_num即物理结点数,Ascii函数取字符串中每个字符的ASCII码;
本发明提出一种改进的任务分配算法,兼顾均匀分配及各个蜘蛛子结点负载情况;
改进的的任务切分算法在二级哈希映射算法计算出分配爬取子结点之后,采用加权最小连接调度算法判断该结点的负载情况是否允许再分配新的URL爬取任务,各个子结点用相应的权重值表示其处理性能,缺省权重值设为1,系统管理员动态地设置服务器的权重值,加权最小连接调度在调度新连接时尽可能使服务器的己建连接数和其权重值呈正比;
加权最小连接调度的算法流程为:假设有一组服务器K={K0,K1,…,Kn‑1),J(Ki)表示服务器Ki的权重值,F(Ki)表示服务器Ki的当前连接数,所有服务器当前连接数的总和为Fsum=∑F(Ki)(i=0,1,…,n‑l),当前的新连接请求会被发送服务器Km,当且仅当服务器Km满足以下条件再发送URL种子:
其中,J(Ki)不为O,子结点的日志每隔一定时间反馈到主控结点,子服务器连接数目F(Ki)通过读取日志获得,比较子结点连接数和先验权重值的比值,得到最小负载的子结点,分配新的爬取任务。
9.基于权利要求1所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,本发明提出的云平台网页蜘蛛系统的模块划分为:模块一,URL切分模块:用户基于想要获得的关联主题信息挑选一些质量较高的初始URL种子集合并放入到种子URL文件中,初始URL种子集合作为云平台网页蜘蛛系统添加搜索的起点,对于系统爬取关联主题的网页至关重要,在获得到URL列表之后,通过URL切分模块,将种子URL集合切分后分配给各个Slave结点上的TaskTracker进程进行爬取工作;
模块二,网页抓取模块:基于云平台文件系统HDFS中的未抓取URL库中获得URL链接并进行网页信息的爬取工作,先与URL所在的web服务器进行HTTP连接,进而下载网页信息存储在云平台文件系统HDFS中的初始网页库中,等待网页解析模块处理;
模块三,网页解析模块:网页抓取模块完成爬取工作之后将网页信息保存到云平台文件系统的初始网页库中,然后网页解析模块将依据输入数据的块数,即文件系统HDFS初始网页库中页面内容的块个数,进行任务的分发,紧接着网页解析模块采用MapReduce云平台计算模型对网页内容进行解析,包括网页内容信息及链接URL信息,最后,网页解析模块将网络页面中包含的URL链接解析出来并存储在文件系统HDFS中的链出URL库中,并把解析得到的网页内容信息存储在文件系统HDFS中的解析网页库中;
模块四,链接过滤模块:网页解析模块获得的链接URL经过链接去重过滤操作,对于不符合标准的URL链接,将其进行规范化处理之后才能供后续的爬取工作使用,而对于重复的URL链接,需要进行去重操作;
模块五,数据存储模块:数据存储模块把解析后的网页信息及过滤去重后的URL链接存储到文件系统HDFS中,供后续爬取工作使用,云平台网页蜘蛛系统启动之后,进行URL的切分、网页的抓取、网页内容的解析及链接去重过滤功能模块的任务,并采用云平台并行方式持续循环运行下去,直到云平台网页蜘蛛系统达到相应的爬行结束条件为止。
10.基于权利要求1所述的基于改良云平台的网页蜘蛛主题式搜索系统,其特征在于,URL切分模块将种子URL集合中的URL进行切分,是云平台网页蜘蛛系统正式开始的第一步;
首先,URL切分模块从种子URL集合中获得到种子URL;接着,完成切分任务之后分发到各个Slave结点上以供网页爬取模块的爬取工作,各个Slave结点上的蜘蛛将分发获得的URL集合存储在各自的未抓取URL库申,然后从未抓取URL库中选择一个URL网页链接作为开始执行具体的爬取任务,系统最重要的工作是保证各个结点上的爬取任务不发生冲突,这时候任务分配就显得格外重要,因此,URL切分模块对种子URL集合进行切分之后,各个TaskTracker上的蜘蛛各自获得到分配给自己的URL集合,每个TaskTracker上的蜘蛛互相协作并行执行爬取任务,URL切分模块的工作就是将URL列表切分为若干个片段并保存到文件系统HDFS中的未抓取URL库中,供网页爬取模块进行采用,URL切分模块的MapReduce模型算法的描述为:
第一步,初始化:新建一个MapReduce任务,并对其进行初始化操作;
第二步,预处理:通过InputFormat对将数据进行一定的预处理,将其改造为
第三步,数据分片:对种子URL集合进行预处理,即从种子URL集合中获得URL链接信息,并对其进行分片处理;
第四步,Map过程:按照改进的任务分配算法,对每个URL进行关联的运算;
第五步,Combiner过程:对第四步中输出的中间文件中相同关键字key的值进行合并工作,提高后续操作步骤的处理效率;
第六步,Partitioner过程:经过第五步合并处理之后,将Map任务的输出的中间结果基于关键字key利用哈希表处埋分拆为若干个区;
第七步,Reduce过程:基于Map任务的运算结果,每个Reduce任务将种子URL集合中URL链接的任务分配结果输出;
第八步,存入HDFS:通过OutputFormat对将Reduce的输出结果进行一定的处理,分配到各个爬取子结点的URL分别存放在其文件系统HDFS里的未抓取链接库中,以便进行下一步的爬取工作。