CN112597369A - 基于改良云平台的网页蜘蛛主题式搜索系统 - Google Patents
基于改良云平台的网页蜘蛛主题式搜索系统 Download PDFInfo
- Publication number
- CN112597369A CN112597369A CN202011531209.2A CN202011531209A CN112597369A CN 112597369 A CN112597369 A CN 112597369A CN 202011531209 A CN202011531209 A CN 202011531209A CN 112597369 A CN112597369 A CN 112597369A
- Authority
- CN
- China
- Prior art keywords
- webpage
- url
- spider
- cloud platform
- crawling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 241000239290 Araneae Species 0.000 title claims abstract description 288
- 230000009193 crawling Effects 0.000 claims abstract description 161
- 238000004458 analytical method Methods 0.000 claims abstract description 100
- 239000013598 vector Substances 0.000 claims abstract description 59
- 238000004364 calculation method Methods 0.000 claims abstract description 57
- 101000911753 Homo sapiens Protein FAM107B Proteins 0.000 claims abstract description 20
- 102100026983 Protein FAM107B Human genes 0.000 claims abstract description 20
- 238000013461 design Methods 0.000 claims abstract description 12
- 238000003860 storage Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 110
- 230000008569 process Effects 0.000 claims description 80
- 230000011218 segmentation Effects 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 44
- 230000000875 corresponding effect Effects 0.000 claims description 43
- 230000006870 function Effects 0.000 claims description 25
- 238000001914 filtration Methods 0.000 claims description 20
- 238000009826 distribution Methods 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 17
- 238000007781 pre-processing Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 239000012634 fragment Substances 0.000 claims description 4
- 230000006872 improvement Effects 0.000 claims description 4
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 230000005484 gravity Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000010845 search algorithm Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000012360 testing method Methods 0.000 claims description 2
- 230000005856 abnormality Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供的基于改良云平台的网页蜘蛛主题式搜索系统,针对基于链接结构的网页分析算法HITS算法及基于VSM向量空间模型的主题相似度计算的网页分析算法进行改进,提出了改进的网页蜘蛛模型算法,提出了基于Hadoop云平台网页蜘蛛的总体框架模型,在文件系统HDFS上设计实现了云平台网页蜘蛛的存储结构,并基于模块划分对各个功能模块进行MapReduce算法实现;提出了改进的任务分配算法,能够兼顾均匀分配及各个爬取子结点负载情况,提高了云平台网页蜘蛛系统的爬取效率和准确性;结果表明本发明提出并实现的基于Hadoop的云平台网页蜘蛛系统是可行且有效的,能够大幅提高主题式搜索的准确性及效率,能够全面、快速、准确的检索主题关联信息。
Description
技术领域
本发明涉及一种网页蜘蛛主题式搜索系统,特别涉及一种基于改良云平台的网页蜘蛛主题式搜索系统,属于主题式搜索系统技术领域。
背景技术
随着互联网技术的日益普以及和飞速发展,面对如此庞大而又种类繁多的信息数据,通用的搜索引擎作为获得信息的主要手段已经远远不能满足人们对特定领域或主题关联信息的检索需求。鉴于此,针对特定领域或主题的主题式搜索引擎及网页蜘蛛技术得到了广泛应用,但随着网络信息量呈指数级增长,仅依赖单台计算机进行爬取的传统网页蜘蛛已不能适应大数据环境下的主题式搜索对性能、可扩展性方面的需求,而Hadoop云平台计算框架能很好的解决这个问题。
近年来,有关主题型搜索引挚的研发正在成为热点,主题式搜索引擎专业化个性化和针对性强的特点使其成为目前搜索引擎领域中的热点和趋势,现有技术出现了一些主题式搜索引擎,有道是网易公司结束与谷歌的合作后自行研发的搜索引擎,它提供了视频、网页、音乐、词典等不同主题的搜索,其中最具特点的是词典主题式搜索,对用户输入的关键词英汉互译,有基本释义、网络释义,大量的双语例句并提供标准发音朗读。Scirus是专门用于科技信息检索的世界上最全面的科技搜索引擎,其既可以搜索网站,也可以搜索期刊资源,而且专注于科技方面的内容,Scirus基本检索类似于一般的搜索引擎,并且支持与或者非等操作,高级检索可按不同的字段进行检索。但另一方面,随着网络信息量呈指数级增长,仅依赖单台计算机进行爬取的传统网页蜘蛛已不能适应大数据环境下的主题式搜索对性能、可扩展性等方面的需求。
另外现有技术的开源蜘蛛,例如Larbin是一个单一的蜘蛛,它设计简单只爬取页面,用户可自行对一些爬取参数进行配置,爬行性能较好,但它既不关注页面分析,也不关注数据存储等,容易造成去重误判;WebLech是一个Web站点下载与镜像工具,它尽可能标准的模仿Web浏览器的行为,按功能需求采用多线程来下载Web网站;开源产品Heritrix,它使用深度遍历网页的方法,将非文本内容不做判断的完整抓取,但该蜘蛛控制参数多,配置较麻烦,且对中文支持不够好。
随着互联网的进一步发展,云平台对海量数据的计算能力更待进一步提升,当谷歌公开发表了其产品架构,及其云平台文件系统GFS,高性能云平台计算模型MapReduce相关研究后,Nutch搜索引擎在分析了GFS后,提出了自己的云平台文件系统NDFS,然后将MapReduce云平台计算模型引入Nutch开发中实现,Hadoop是从Nutch项目中移出的主要使用MapReduce云平台计算模型进行大规模计算的一个框架,Hadoop云平台框架的提出,使得对海量数据的处理及云平台计算的实现变得便捷高效。
综上所述,现有技术主题式搜索系统的缺点主要包括:
第一,面对互联网如此庞大而又种类繁多的信息数据,通用的搜索引擎作为获得信息的主要手段已经远远不能满足人们对特定领域或主题关联信息的检索需求,针对特定领域或主题的主题式搜索引擎及网页蜘蛛技术得到了广泛应用,但随着网络信息量呈指数级增长,仅依赖单台计算机进行爬取的传统网页蜘蛛已不能适应大数据环境下的主题式搜索对性能、可扩展性方面的需求,现有技术无法很好的解决这个问题;
第二,现有技术的开源蜘蛛,有的是一个单一的蜘蛛,它设计简单只爬取页面,用户可自行对一些爬取参数进行配置,它既不关注页面分析,也不关注数据存储等,容易造成去重误判;有的使用深度遍历网页的方法,将非文本内容不做判断的完整抓取,蜘蛛控制参数多,配置较麻烦,且对中文支持不够好;
第三,现有技术的搜索系统爬取信息类型针对性弱,在数据获得方面,爬取的信息类型无法基于用户提供的主题进行筛选;跨平台性差,不能基于不同平台架构的要求进行软件移植,或者在软件移植的过程中,需要做大量的改动满足用户在不同平台架构下运行的需求;成本高且性能低,现有技术对搜索系统计算机的配置要求高。必须在高成本的条件下对互联网中包含海量数据的网页信息进行爬取,并且对爬取到的网页信息进行处理的效率较低,缺少优秀的爬取及任务分配算法,无法实现全面、快速、准确的检索主题关联信息;
第四,现有技术的健壮性和系统稳定性差,一方面系统在对网页信息进行爬取期间,不断的和数量巨大的服务器建立网络连接来获得网页信息数据,过程中系统不仅需要及时的对网页信息进行解析,而且需要及时对那些无法链接到的URL链接或web服务器异常或故障而导致的无法连接等情况进行处理,现有技术无法保证系统能够继续正常地运行;另一方面,系统运转在由多台计算机结点构建的环境中,在集群持久不间断工作的情况下,各个计算机结点都不可避免的会发生各种无法预料的异常或者故障,当某个计算机结点发生不可预测的异常或故障而导致无法正常运行时,系统无法及时发现和定位发生异常或故障的计算机结点,无法将故障结点的计算任务分配给其它正常运行的计算机结点,系统的健壮性和系统稳定差;
第五,现有技术的搜索系统爬可管理性差,不能实时获得系统运行状态及各个计算机结点的内存采用率、CPU采用率等详细信息;可配置性差,不能基于系统运行状态,对运行参数进行动态实时调整;可扩展性差,不能在系统运行中动态增加或删改计算机集群中的各个计算机结点;负载均衡能力弱,系统内部缺少负载均衡机制,搜索系统各个计算机结点任务量分配不均匀,系统的爬取效率波动较大。
发明内容
随着互联网技术的日益普以及和飞速发展,面对如此庞大而又种类繁多的信息数据,通用的搜索引擎作为获得信息的主要手段已经远远不能满足人们对特定领域或主题关联信息的检索需求。鉴于此,针对特定领域或主题的主题式搜索引擎及网页蜘蛛技术得到了广泛应用,但随着网络信息量呈指数级增长,仅依赖单台计算机进行爬取的传统网页蜘蛛已不能适应大数据环境下的主题式搜索对性能、可扩展性方面的需求,而Hadoop云平台计算框架能很好的解决这个问题。因此,本发明提出了改进的网页蜘蛛算法及任务分配算法,并实现了一种基于Hadoop的云平台网页蜘蛛系统,该系统能够全面、快速、准确的检索主题关联信息。
为达到以上技术效果,本发明所采用的技术方案为:
基于改良云平台的网页蜘蛛主题式搜索系统,主要包括:一是针对基于链接结构的网页分析算法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的次序。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,本发明的云平台网页蜘蛛系统的总体框架模型:
第一,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报告各个结点上的资源使用和任务运行情况。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,改进的网页蜘蛛模型采用超链接分析算法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[i]=1 式3
最后,在迭代计算出结果之后,对A[vi]、H[vi]规格化,计算式为式4和式5:
其中,vi,vj∈B表示vj存在到vi的超链接,vj,vi∈C表示vj存在到vi的超链接。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,本发明改进的网页蜘蛛模型采用基于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链接综合价值的计算。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,评估网页综合价值:在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)xD
+Sim(Q_Tit(i),Th)×(1-P) 式11
Q_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权重值很高的页面可能指向的另一个主题页面集合,但其本身的网页内容与主题并不关联,这时需要添加一个控制因子来使网页蜘蛛能抓取到更多的主题关联页面。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,基于系统总体框架模型,提出本系统采用的未抓取链接库、初始网页库、解析链接库、解析网页库:
未抓取链接库,未抓取URL库存放当前预抓取的URL,是URL切分模块将URL种子文件中读驭得到的URL进行处理之后,存放在文件系统HDFS中的,网页抓取模块从未抓取URL库中获得URL进行具体的网页爬取工作;
初始网页库,初始网页库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息,它们经过处理之后保存在文件系统HDFS中,以便后续网页解析模块使用;
解析链接库解析链接库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息经过网页解析模块解析得到的链接解析数据,它们经过处理之后保存在文件系统HDFS中,以便后续爬取工作的进行;
解析网页库,解析网页库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息经过网页解析模块解析得到的页面解析数据,它们经过处理之后保存在云平台文件系统HDFS中,以便后续的采用;
将以上四个存储结构在基于Hadoop的文件系统HDFS之上具体实现,以供云平台网页蜘蛛系统中的功能模块调用。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,系统分成蜘蛛子结点、主控结点、HDFS三部分,主控结点协调蜘蛛子结点之间的爬行,蜘蛛子结点抓取页面,抓取的页面存入HDFS中;
主控结点和蜘蛛子结点之间的信息以及数据交互的工作机制为:
第一,主控结点基于自身的配置信息得知整个系统中共部署多少个蜘蛛,由主控结点远程登录的方式启动蜘蛛;
第二,蜘蛛子结点启动后向主控结点发送一个“Ready”状态信息,表明该蜘蛛已经做好准备,可以接受爬行任务;
第三,主控结点收到蜘蛛子结点的“Ready”信息后,生成一个初始任务,即封装一些待抓取的网页的URL,并以文件的形式发送到蜘蛛子结点某个特定的路径下,然后,向蜘蛛结点发送一个“Working”的回复信息,如果主控结点发现当前数据库中无数据,即没有任务可发,而且系统中还有蜘蛛在爬行,它就会向该蜘蛛发送“Wait”回复信息,如果蜘蛛系统属于初次启动或者所有的蜘蛛都处于“Wait”状态,说明用户没有添加爬行任务或者本次爬行完毕,主控结点就会向各个蜘蛛发送“Stop”信息;
第四,蜘蛛子结点基于收到“Working”的回复信息后,到相应的路径下,装载种子URL到抓取队列,如果是首次启动,则启动抓取线程开始抓取任务,如果非首次启动,则在当前爬行完之后继续爬行下一次任务;蜘蛛若收到“Wait”信息,将状态置为“Wait”,爬完当前任务后,处于等待状态,直到主控结点将其唤醒;若收到“Stop”信息,蜘蛛则直接退出;
第五,在抓取页面的过程中,抽取出的URL达到一定量后,会被封装成一个数据文件,即写入到一个文本文件中,蜘蛛将其发送到主控结点的特定路径下,并向主控结点发送“Dada”的状态信息;
第六,主控结点收到“Dada”信息后,到指定路径下装载数据至数据库中;
第七,当蜘蛛即将完成本次抓取任务时,同样会向主控结点发送“Ready”的状态信息,接下去就回到了第一个交互状态。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,改进的任务分配算法:通过二级哈希映射算法支持云平台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)通过读取日志获得,比较子结点连接数和先验权重值的比值,得到最小负载的子结点,分配新的爬取任务。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,本发明提出的云平台网页蜘蛛系统的模块划分为:
模块一,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的切分、网页的抓取、网页内容的解析及链接去重过滤功能模块的任务,并采用云平台并行方式持续循环运行下去,直到云平台网页蜘蛛系统达到相应的爬行结束条件为止。
基于改良云平台的网页蜘蛛主题式搜索系统,进一步的,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对将数据进行一定的预处理,将其改造为<key,value>这种数据格式的键值对:方便MapReduce任务进行处理;
第三步,数据分片:对种子URL集合进行预处理,即从种子URL集合中获得URL链接信息,并对其进行分片处理;
第四步,Map过程:按照改进的任务分配算法,对每个URL进行关联的运算;
第五步,Combiner过程:对第四步中输出的中间文件中相同关键字key的值进行合并工作,提高后续操作步骤的处理效率;
第六步,Partitioner过程:经过第五步合并处理之后,将Map任务的输出的中间结果基于关键字key利用哈希表处埋分拆为若干个区;
第七步,Reduce过程:基于Map任务的运算结果,每个Reduce任务将种子URL集合中URL链接的任务分配结果输出;
第八步,存入HDFS:通过OutputFormat对将Reduce的输出结果进行一定的处理,分配到各个爬取子结点的URL分别存放在其文件系统HDFS里的未抓取链接库中,以便进行下一步的爬取工作。
与现有技术相比,本发明的优势和创新点在于:
第一,本发明在互联网信息海量增长的大数据时代背景下,提出并完成了基于改良云平台的网页蜘蛛主题式搜索系统,针对基于链接结构的网页分析算法HITS算法及基于VSM向量空间模型的主题相似度计算的网页分析算法进行改进,提出了一种改进的网页蜘蛛模型算法,一方面从网页内容关联性方面评估网页内容与主题的关联性,另一方面从链接分析方面评估网页的权威性及关联主题页面的预判性,能够对网页信息的综合价值进行评估;提出了一种基于Hadoop云平台网页蜘蛛的总体框架模型,在文件系统HDFS上设计实现了云平台网页蜘蛛的存储结构,并基于模块划分对各个功能模块进行MapReduce算法实现;提出了一种改进的任务分配算法,能够兼顾均匀分配及各个爬取子结点负载情况,提高了系统性能,优化了资源配置,提高了云平台网页蜘蛛系统的爬取效率和准确性;结果表明本发明提出并实现的基于Hadoop的云平台网页蜘蛛系统是可行且有效的,能够大幅提高主题式搜索的准确性及效率,具有很重要的研发意义和很强的应用价值;
第二,本发明提供的基于改良云平台的网页蜘蛛主题式搜索系统,爬取信息类型针对性强,云平台网页蜘蛛系统基于主题,在数据获得方面,爬取的信息类型是基于用户提供的主题进行筛选并进行主题关联度计算得到的信息;跨平台性好,云平台网页蜘蛛系统能够基于不同平台架构的要求进行软件移植,在软件移植的过程中,系统只需要做一些最基本的参数配置的改动就能应用满足用户在不同平台架构下运行网页蜘蛛系统的需求;本发明提出了改进的网页蜘蛛算法及任务分配算法,并实现了一种基于Hadoop的云平台网页蜘蛛系统,该系统能够全面、快速、准确的检索主题关联信息;
第三,本发明提供的基于改良云平台的网页蜘蛛主题式搜索系统,具有低成本和高性能的额特点,云平台网页蜘蛛系统采用的Hadoop云平台集群环境能够在多台普通计算机上构建,对计算机的配置要求不高;本发明能够在低成本的条件下对互联网中包含海量数据的网页信息进行爬取,并能够对爬取到的网页信息进行高效率的云平台并行处理;
第四,健壮性和系统稳定性好,一方面云平台网页蜘蛛系统在对网页信息进行爬取期间,不断的和数量巨大的服务器建立网络连接来获得网页信息数据,过程中系统不仅能及时的对网页信息进行解析,而且能及时对那些无法链接到的URL链接或web服务器异常或故障而导致的无法连接等情况进行处理,从而保证系统能够继续正常地运行;另一方面,系统运转在由多台计算机结点构建的云平台计算机集群环境中,在云集群持久不间断工作的情况下,各个计算机结点都不可避免的会发生各种无法预料的异常或者故障,当某个计算机结点发生不可预测的异常或故障而导致无法正常运行时,系统能及时发现和定位发生异常或故障的计算机结点,将故障结点的计算任务分配给其它正常运行的计算机结点,维护系统的健壮性和系统稳定性;
第五,本发明提供的基于改良云平台的网页蜘蛛主题式搜索系统,可管理性好,能实时获得系统运行状态及各个计算机结点的内存采用率、CPU采用率等详细信息;可配置性好,能够基于系统运行状态,对云平台网页蜘蛛的某些运行参数进行动态实时调整,例如爬取时启用的线程数、爬取的最大深度等参数配置;可扩展性好,能够在系统运行中动态增加或删改计算机集群中的各个计算机结点,具有良好的可扩展性,能通过增加系统内的计算结点来大幅提高爬取效率;负载均衡能力强,能充分利用网页蜘蛛系统云平台并行计算的优势,最大化提高爬取效率,在云平台网页蜘蛛系统内部设计负载均衡机制,使各个计算机结点任务量分配合理均匀,使系统的爬取效率大幅提高。
附图说明
图1是本发明改进的网页蜘蛛模型示意图。
图2是本发明提出的云平台网页蜘蛛系统的总体框架模型图。
图3是本发明云平台网页蜘蛛系统的基本流程图。
图4是本发明云平台网页蜘蛛系统的云平台架构图。
图5是本发明云平台网页蜘蛛系统的模块设计示意图。
图6是本发明的网页解析过程示意图。
具体实施方式
下面结合附图,对本发明提供的基于改良云平台的网页蜘蛛主题式搜索系统的技术方案进行进一步的描述,使本领域的技术人员可以更好的理解本发明并能予以实施。
本发明的主要工作包括:一是针对基于链接结构的网页分析算法HITS算法及基于VSM向量空间模型的主题相似度计算的网页分析算法进行改进,提出了一种改进的网页蜘蛛模型算法,对网页信息的综合价值进行评估;二是在对云平台网页蜘蛛进行云平台实现的过程中,提出了一种改进的任务分配算法,兼顾均匀分配及各个爬取子结点负载情况,提高系统性能,优化资源配置,提高云平台网页蜘蛛系统的爬取放率和准确性;三是提出一种基于Hadoop的云平台网页蜘蛛的总体框架模型,在文件系统HDFS上设计实现了云平台网页蜘蛛的存储结构,并基于模块划分对各个功能模块进行MapReduce算法实现;四是实现基于Hadoop的云平台网页蜘蛛系统并进行测试,结果表明本发明所提出并实现的基于Hadoop的云平台网页蜘蛛系统是可行且有效的,能大幅提高主题式搜索的准确性及效率。
一、云平台网页蜘蛛总体框架模型
云平台网页蜘蛛系统的总体框架模型设计为:首先,对物理架构进行分析设计,即设计实现Hadoop云平台计算机集群中各个计算机结点之间的拓扑结构,本发明采用中心化拓扑结构,即Hadoop云平台计算机集群中一台计算机用作Master结点,其它若干台计算机分别用作各个Slave结点,Master结点负责调度和管理其它所有的Slave结点,Master结点实时监控各个Slave结点的运行状态,将爬取任务有条理的分配到各Slave结点上进行并行任务处理,各个Slave结点负责任务的并行处理,完成云平台网页蜘蛛系统的具体爬取任务,各个Slave结点之间并无网络通信,它们都与Master结点进行网络通信,由Master结点作为中心结点负责系统的任务分配和调度,这种中心化拓扑结构实现简单且方便管理。
本发明的云平台网页蜘蛛系统采用基于Hadoop框架的MapReduce编程模式,Master结点首先将总的爬取任务切分成一系列子任务分发到各个Slave结点上去,采用云平台并行爬取的方法来提高爬取效率,Slave结点完成具体的各个爬取子任务,然后将爬取完成的信息提交给Master结点,Master结点汇聚各个结点爬取完成的信息,将其保存在基于Hadoop框架的文件系统HDFS里,本发明提出的云平台网页蜘蛛系统的总体框架模型,如图2所示。
本发明的云平台网页蜘蛛系统的总体框架模型:
第一,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所示,图中所给出的是一次完整爬取过程的运行情况。在云平台并行运行期间,系统在进行网页爬取、网页分析和链接去重过滤模块时完全可以进行并行异步的运行。本发明应用基于Hadoop框架的计算模型MapReduce完成云平台运行,应用基于Hadoop框架的文件系统HDFS完成对网页信息库和链接URL库的存储,据此设计完成基于Hadoop的云平台网页蜘蛛系统。
本发明的云平台网页蜘蛛系统的基本执行流程为:
第一,用户根据想要获得的关联主题信息挑选一些质量较高的初始URL种子集合并放入到种子URL文件中,初始URL种子集合作为系统添加搜索的起点,系统挑选种子URL文件中的URL链接进行网页信息的爬取;
第二,系统在获得相应的URL链接之后,与URL链接所对应的Web服务器进行网络连接,若网络连接建立失败且等待超过一定的时间,系统放弃该网络连接并标记此URL链接,从URL链接队列中选择下一个URL链接进行访问;
第三,如果和Web服务器成功建立了网络通信,系统应用MapReduce云平台计算模型基于http协议对网页内的信息进行爬取,并将爬取得到的信息存储到文件系统HDFS中;
第四,在网页爬取完成后,系统对网页信息进行进一步的分析,把解析得到的网页内容信息存储在文件系统HDFS中的解析网页库中;
第五,将网络页面中包含的URL链接解析出来进行链接的去重过滤操作;
第六,将经过链接去重过滤后的URL链接存储在文件系统HDFS中的链出URL库中,以便以后的爬取工作的进行;
第七,若没有满足网页蜘蛛停止的条件,系统根据改进的网页蜘蛛模型对每个URL链接进行综合价值的评估,选择一个优先级最高的URL链接即和指定的主题最相关的网页进行下一步的爬取工作。
二、云平台网页蜘蛛的改进
(一)网页蜘蛛原理
网页蜘蛛从互联网上海量的网页资源里爬取与指定主题关联的网页信息,过滤掉与主题关联度较低的页面。当前,众多行业领域专业人员受困于主题网络信息检索搜集中现有搜索引擎结果准确度低的现状,主题式搜索引擎的需求与日俱增,而主题式搜索引擎的核心就是网页蜘蛛。网页蜘蛛更侧重于主题引导的抓取,依据提前指定好的主题,基于网页分析算法及主题关联度计算模型爬取与主题关联的页面信息,网页蜘蛛不追求网页信息的广覆盖率,而追求网页信息的查准率。
网页蜘蛛先对URL种子集中的初始URL进行分析,基于特定的网页分析算法对与主题关联度较低的URL链接进行过滤,与主题关联度较高的URL链接保存下来并将其加入待爬取URL的列表中。在对网页内容抓取完成后,网页蜘蛛参照特定的URL搜索方法从URL列表中挑选一个主题关联度较高的URL链接进行抓取,如此循环的对网页信息进行爬取,一旦达到网络蜘蛛的终止条件算法结束。
(二)改进的网页蜘蛛模型
网页蜘蛛的关键技术在于网页分析算法及网页蜘蛛爬行方法,HITS算法和PageValue算法是搜索引擎链接分析当中两个最常用的算法,以这两个算法为代表的基于链接结构的网页分析算法,通过分析互联网上的网页的相互链接计算网页的权威性或权重值,进而决定网页蜘蛛系统接下来爬取网页URL链接的优先级。PageValue算法只适合发现权威网页而不适合发现与主题关联的网页,HITS算法则会出现搜索到的页面信息偏离关联主题的现象。但在本发明提出的云平台网页蜘蛛系统中,需要考虑到网络页面上的信息以及链接与主题的关联性,因此单独使用这两个算法并不符合系统的要求。而另一方面,基于网页内容的网页分析算法仅仅基于网页内容的特征相似度来决定搜索URL链接的优先级,而忽略了链接信息在主题关联性搜索过裎中的重要作用,因而也不满足本发明所提出的云平台网页蜘蛛系统的主题关联性的需求。
经过上面的分析可以看出,仅仅单独使用基于链接结构的网页分析算法或仅仅单独使用基于网页内容的网页分析算法都不能有效的对URL链接做出准确的价值评估。为了满足本发明所提出的云平台网页蜘蛛系统的主题关联性需求,本发明将基于链接结构的网页分析算法HITS算法和基于VSM向量空间模型的主题相似度计算的网页分析算法综合,提出了一种改进的云平台网页蜘蛛模型,基于两种不同类型的网页分析算法各自的优缺点,一方面从网页内容关联性方面评估网页内容与主题的关联性,另一方面从链接分析方面评估网页的权威性及关联主题页面的预判性。该模型通过优化算法全面客观评价每个URL链接的综合价值,提高本发明提出的云平台网页蜘蛛系统爬取关联主题资源的准确率和效率。
改进的网页蜘蛛模型如图1所示。其主要设计为:
第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的次序。
(三)改进的网页蜘蛛模型算法实现
网页蜘蛛的核心是使被爬取的URL链接对应的页面信息具有较高主题关联度,本发明提出了一种改进的网页蜘蛛模型,详细分析了如何对URL链接进行综合价值的评价,以下实现改进的网页蜘蛛模型。
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的超链接。
2.计算内容的主题关联度
本发明改进的网页蜘蛛模型采用基于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链接综合价值的计算,对URL链接的评估更为全面准确。
3.评估网页综合价值
本发明在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)×p
+Sim(Q_Tit(i),Th)×(1-P) 式11
Q_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权重值很高的页面可能指向的另一个主题页面集合,但其本身的网页内容与主题并不关联。这时需要添加一个控制因子来使网页蜘蛛能抓取到更多的主题关联页面。
本发明提出一种改进的网页蜘蛛模型算法,该算法模型基于链接结构的网页分析算法HITS算法及基于VSM向量空间模型的主题相似度计算的网页分析算法进行改进,一方面从网页内容关联性方面评估网页内容与主题的关联性,另一方面从链接分析方面评估网页的权威性及关联主题页面的预判性,对网页信息的综合价值进行评估。
三、云平台网页蜘蛛在HDFS上的存储结构
本发明总结云平台网页蜘蛛系统采用到的存储结构,针对文件系统HDFS的特点设计相应的数据结构。基于系统总体框架模型,提出本系统采用的未抓取链接库、初始网页库、解析链接库、解析网页库。
(一)未抓取链接库
未抓取URL库存放当前预抓取的URL,是URL切分模块将URL种子文件中读驭得到的URL进行处理之后,存放在文件系统HDFS中的。网页抓取模块是从未抓取URL库中获得URL进行具体的网页爬取工作的。
(二)初始网页库
初始网页库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息,它们经过处理之后保存在文件系统HDFS中,以便后续网页解析模块使用。
(三)解析链接库
解析链接库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息经过网页解析模块解析得到的链接解析数据,它们经过处理之后保存在文件系统HDFS中,以便后续爬取工作的进行。
(四)解析网页库
解析网页库存储网页抓取模块将云平台网页蜘蛛中各个结点抓取下来的初始网页信息经过网页解析模块解析得到的页面解析数据,它们经过处理之后保存在云平台文件系统HDFS中,以便后续的采用。
将以上四个存储结构在基于Hadoop的文件系统HDFS之上具体实现,以供云平台网页蜘蛛系统中的功能模块调用。
四、云平台网页蜘蛛MapReduce算法实现
(一)系统云平台架构
系统分成蜘蛛子结点、主控结点、HDFS三部分,主控结点协调蜘蛛子结点之间的爬行,蜘蛛子结点抓取页面,抓取的页面存入HDFS中。系统的云平台架构如图4所示。
主控结点和蜘蛛子结点之间的信息以及数据交互的工作机制为:
第一,主控结点基于自身的配置信息得知整个系统中共部署多少个蜘蛛,由主控结点远程登录的方式启动蜘蛛;
第二,蜘蛛子结点启动后向主控结点发送一个“Ready”状态信息,表明该蜘蛛已经做好准备,可以接受爬行任务;
第三,主控结点收到蜘蛛子结点的“Ready”信息后,生成一个初始任务,即封装一些待抓取的网页的URL,并以文件的形式发送到蜘蛛子结点某个特定的路径下,然后,向蜘蛛结点发送一个“Working”的回复信息,如果主控结点发现当前数据库中无数据,即没有任务可发,而且系统中还有蜘蛛在爬行,它就会向该蜘蛛发送“Wait”回复信息,如果蜘蛛系统属于初次启动或者所有的蜘蛛都处于“Wait”状态,说明用户没有添加爬行任务或者本次爬行完毕,主控结点就会向各个蜘蛛发送“Stop”信息;
第四,蜘蛛子结点基于收到“Working”的回复信息后,到相应的路径下,装载种子URL到抓取队列,如果是首次启动,则启动抓取线程开始抓取任务,如果非首次启动,则在当前爬行完之后继续爬行下一次任务;蜘蛛若收到“Wait”信息,将状态置为“Wait”,爬完当前任务后,处于等待状态,直到主控结点将其唤醒;若收到“Stop”信息,蜘蛛则直接退出;
第五,在抓取页面的过程中,抽取出的URL达到一定量后,会被封装成一个数据文件,即写入到一个文本文件中,蜘蛛将其发送到主控结点的特定路径下,并向主控结点发送“Dada”的状态信息;
第六,主控结点收到“Dada”信息后,到指定路径下装载数据至数据库中;
第七,当蜘蛛即将完成本次抓取任务时,同样会向主控结点发送“Ready”的状态信息,接下去就回到了第一个交互状态。
(二)改进的任务分配算法
在云平台蜘蛛系统中,爬取任务的均衡分配是影响系统性能和资源配置的关键问题。现有技术多采用集中式的任务切分方法。这种集中方式的任务切分方法往往会导致重复采集网页,造成时间和带宽的浪费。集中式任务切分方法的最大缺点是:协调器要转发大量URL,成为系统性能的瓶颈。为解决这个问题,通过二级哈希映射算法支持云平台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)通过读取日志获得,比较子结点连接数和先验权重值的比值,得到最小负载的子结点,分配新的爬取任务。
(三)功能模块的算法实现
云平台网页蜘蛛系统的模块设计如图5所示。本发明所提出的云平台网页蜘蛛系统的模块划分为:
模块一,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的切分、网页的抓取、网页内容的解析及链接去重过滤功能模块的任务,并采用云平台并行方式持续循环运行下去,直到云平台网页蜘蛛系统达到相应的爬行结束条件为止。
1.URL切分模块
URL切分模块将种子URL集合中的URL进行切分,是云平台网页蜘蛛系统正式开始的第一步;首先,URL切分模块从种子URL集合中获得到种子URL;接着,完成切分任务之后分发到各个Slave结点上以供网页爬取模块的爬取工作,各个Slave结点上的蜘蛛将分发获得的URL集合存储在各自的未抓取URL库申,然后从未抓取URL库中选择一个URL网页链接作为开始执行具体的爬取任务,系统最重要的工作是保证各个结点上的爬取任务不发生冲突,这时候任务分配就显得格外重要,因此,URL切分模块对种子URL集合进行切分之后,各个TaskTracker上的蜘蛛各自获得到分配给自己的URL集合,每个TaskTracker上的蜘蛛互相协作并行执行爬取任务,避免各个TaskTracker上的爬取任务发生冲突,URL切分模块的工作就是将URL列表切分为若干个片段并保存到文件系统HDFS中的未抓取URL库中,以供网页爬取模块进行采用。
URL切分模块的MapReduce模型算法的描述为:
第一步,初始化:新建一个MapReduce任务,并对其进行初始化操作;
第二步,预处理:通过InputFormat对将数据进行一定的预处理,将其改造为<key,value>这种数据格式的键值对:方便MapReduce任务进行处理;
第三步,数据分片:对种子URL集合进行预处理,即从种子URL集合中获得URL链接信息,并对其进行分片处理;
第四步,Map过程:按照改进的任务分配算法,对每个URL进行关联的运算;
第五步,Combiner过程:对第四步中输出的中间文件中相同关键字key的值进行合并工作,提高后续操作步骤的处理效率。
第六步,Partitioner过程:经过第五步合并处理之后,将Map任务的输出的中间结果基于关键字key利用哈希表处埋分拆为若干个区;
第七步,Reduce过程:基于Map任务的运算结果,每个Reduce任务将种子URL集合中URL链接的任务分配结果输出;
第八步,存入HDFS:通过OutputFormat对将Reduce的输出结果进行一定的处理,分配到各个爬取子结点的URL分别存放在其文件系统HDFS里的未抓取链接库中,以便进行下一步的爬取工作。
2.网页抓取模块
网页抓取模块从未抓取URL库中获得URL链接进行正式的网页爬取工作,网页抓取模块是关键核心模块,网页抓取模块可对抓取任务进行并行运算,进入到网页爬取模块之后,首先工作在各个Slave结点上的TaskTracker基于URL切分模块分配给自己的未爬取URL集合,启动多个抓取线程协同工作对URL链接对应的网页信息进行抓取,经过MapReduce云平台计算模型处理之后,将网页爬取模块获得的数据封装映射为“<网页链接,网页数据>”类型的<key,value>键值对的形式保存到文件系统HDFS中的原始网页库。
网页抓取模块的MapReduce模型算法的描述为:
第1步,初始化:新建一个MapReduce任务,并对其进行初始化操作;
第2步,预处理:通过InputFormat对将数据进行一定的预处理,将其改造为<key,value>这种数据格式的键值对,以方便MapReduce任务进行处理;
第3步,数据分片:对URL切分模块输出结果进行预处理,从未抓取URL库中获得URL链接信息,并对其进行分片处理。对切分的数据分片处理成<key,value>键值对即一条记录,在此模块中key关键字表示URL字符串的字符偏移量,value值则为该URL的字符串信息;
第4步,Map过程:这个过程就是将上一步的<key,value>键值对的关键字key和值value两者进行交换,进而输出中间结果,其中的关键字key表示URL的字符串信息,值value为该URL字符串的字符偏移量;
第5步,Combiner过程:对4步中输出的中间文件中相同关键字key的值进行合并工作,提高后续操作步骤的处理效率;
第6步,Partitioner过程:经过第5步合并处理之后,将Map任务的输出的中间结果基于关键字key利用哈希表处理分拆为若干个区,网页抓取模块中每个区对应相同的服务器结点;
第7步,Reduce过程:基于第6步的分区,每个Reduce任务启动多个下载线程对同一个分区中的URL进行抓取,并将抓取的结果输出;
第8步,存入HDFS:通过OutputFormat对将Reduce的输出结果进:处理,将其保存在文件系统HDFS里面的初始网页库中。
其中,具体的网页抓取通过工具软件HttpClient协助完成,首先,抓取线程采用HttpClient类来和web服务器建立网络通信,应用HTTP的post或get函数进行连接请求,然后,web服务器响应请求将网页信息以响应报文的形式返回,接着查看网页报文头信息,包括网页内容长度、字符编码集、内容类型、重定向地址,通过getMethod.getResponseBody()方法获得响应报文信息;最后,经过对响应报文的解析获得相应的网页内容信息,在网页抓取过程中读取Robots文件的内容,只抓取那些有权限或允许抓取的网页信息,遵守Robots协议,另外在与web服务器建立连接的过程中设置参数TIMEOUT,TIMEOUT参数是一个连接建立的过程中允许的最长时间,如果一个链接在超过TIMEOUT的时间内还没能建立连接,将这个链接进行丢弃。
3.网页解析模块
网页解析模块包括两方面的内容,一方面是对抓驭的网页进行解析得到网页的内容信息,另一个方面是解析得到网页内所含超链接URL的信息。在进行网页解析前根据不同类型网页的特征辨别网页的类型,对于不同的网页类型选择相应的方法对不同类型的网页进行网页解析,网页解析模块的步骤如图6所示。按照不同类型的网页解析过程为:
(1)解析HTML类型网页
首先从初始的HTML文件中提取出网页正文内容,作为后续处理的基础。对于HTML类型的网页,网页解析模块首要任务是分析网页的结构。
网页解析模块采用MapReduce云平台计算模型,Map()操作分析和过滤HTML类型网页中的用于网页结构化的显示的各种类型标签,抽取各个标签中的属性和内容,经过解析后的内容将存储在文件系统HDFS中的解析网页库中,然后由Reduce()操作将所有Map()操作提取得到的链接URL进行合并汇总,保存在文件系统HDFS中的链出URL库中,以便蜘蛛后续爬取工作的进行。
网页解析模块的MapReduce模型算法的描述如下所示:
步骤一,初始化:新建一个MapReduce任务,并对其进行初始化操作;
步骤二,预处理:通过InputFormat对将数据进行一定的预处理,将其改造为<key,value>这种数据格式的键值对,以方便MapReduce任务进行处理;
步骤三,数据分片:对初始网页库的数据进行预处理,即从初始网页库中获得URL的页面初始信息,并对其进行分片处理,对切分的数据分片处理成<key,value>键值对即一条记录,在此模块中key关键字表示URL字符对应的页面初始信息,value值则为该URL的字符串信息;
步骤四,Map过程:这个过程是将步骤三的<key,value>键值对的关键字key和值value两者进行交换,进而输出中间结果,其中的关键字key表示URL的字符串信息,值value则为该URL字符对应的页面初始信息;
步骤五,Combiner过程,即对步骤四中输出的中间文件中相同关键字key的值进行合并,提高后续操作步骤的处理效率;
步骤六,Partitioner过程,经过步骤五合并处理之后,将Map任务的输出的中间结果基于关键字key利用哈希表处理分拆为若干个区;
步骤七,Reduce过程:基于步骤六的分区,每个Reduce任务将对初始页面信息进行解析,解析出网页的内容信息及链出URL信息,对于每个URL链接基于改进的网页蜘蛛模型算法,计算其网页综合价值,并将抓取的结果输出;
步骤八,存入HDFS:通过OutputFormat对将Reduce的输出结果进行处理,将其保存在文件系统HDFS里面的解析网页库及解析链接库中。
其中,对HTML网页布局结构的解析通过工具软件HtmlParser来协助完成的,首先,HtmlParser对网页内全部内容数据完成初始化,接下来分别对各个标签进行解析,分别提取Title、Body、Link标签的属性及内容,经过解析后的内容将存储在文件系统HDFS中的解析网页库中,而提取获得的网页链接URL经过链接去重过滤模块的网页过滤、消重操作后保存在文件系统HDFS中的链出URL库供后续的爬取工作使用。
(2)解析非HTML类型网页
对非HTML类型的网页数据进行提取用到不同类型的解析器插件完成数据处理,PDF类型和Office类型网页解析方法为:
1)PDF类型的网页解析采用PDFBox,2)对于Word、Excel、PowerPoint三种类型的网页数据,采用针对微软Word、Excel、PowerPoint系列文档提取数据的软件为POI,POI为用户提供一组JavaAPI来对这三种类型的网页进行数据提取操作。
4.链接去重过滤模块
本发明设计链接去重过滤模块实现对URL链接的规范化和去重处理,链接去重过滤模块包括两个过滤器类,分别是:URL规范化过滤器和URL去重过滤器。
(1)URL规范化过滤器:URL规范化过滤器主要包括两方面的工作,一方面是对网页解析模块解析得到的URL链接字符串进行大小写转换,统一将URL转化为小写字符;另一方面是删除网页解析模块解析得到的URL键接字符串中包含的特殊字符。在上网的过程中,有时会遇到某些URL链接字符串中含有一些特殊的字符。
(2)URL去重过滤器:采用BloomFilder布隆过滤器消除重复的URL链接,BloomFilder算法利用一个很长的二进制位向量和一系列随机hash函数,算法流程为:
步骤1,假设待去重的数据集合为V{v1,v2,v3,…,vn),同时将一个长度为m的位向量U初始化,每位都归零;
步骤2,构造k个随机且地址分配分布均匀的hash函数:hash1(v),hash2(v),hash3(v),…,hashk(v),函数的输入是待去重的数据v,输出结果范围在1到m之间;
步骤3,插入操作:将集合V中的某个数据作为输入,利用这k个hash函数进行hash运算,得到k个hash地址,将位向量U中对应的k个地址的内容赋值为1;
步骤4,查询操作:k个hash函数对需要查询的数据进行hash运算,得到k个地址,检测向量U中相应k个地址的值,如果全部为1则元素存在,否则元素不存在。
本发明提出了云平台网页蜘蛛系统的总体框架模型及基本流程,针对云平台文件系统HDFS的特点设计了相应的数据结构,采用Hadoop框架的云平台计算模型MapReduce和云平台文件系统HDFS进行各个功能模块的算法实现。其中,在对云平台网页蜘蛛进行云平台实现的过程中,提出一种改进的任务分配算法,能够兼顾均匀分配及各个爬取子结点负载情况,提高系统性能,优化资源配置,极大的提高了云平台网页蜘蛛系统的爬取效率和准确性。
Claims (10)
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)式11
Q_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对将数据进行一定的预处理,将其改造为<key,value>这种数据格式的键值对:方便MapReduce任务进行处理;
第三步,数据分片:对种子URL集合进行预处理,即从种子URL集合中获得URL链接信息,并对其进行分片处理;
第四步,Map过程:按照改进的任务分配算法,对每个URL进行关联的运算;
第五步,Combiner过程:对第四步中输出的中间文件中相同关键字key的值进行合并工作,提高后续操作步骤的处理效率;
第六步,Partitioner过程:经过第五步合并处理之后,将Map任务的输出的中间结果基于关键字key利用哈希表处埋分拆为若干个区;
第七步,Reduce过程:基于Map任务的运算结果,每个Reduce任务将种子URL集合中URL链接的任务分配结果输出;
第八步,存入HDFS:通过OutputFormat对将Reduce的输出结果进行一定的处理,分配到各个爬取子结点的URL分别存放在其文件系统HDFS里的未抓取链接库中,以便进行下一步的爬取工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531209.2A CN112597369A (zh) | 2020-12-22 | 2020-12-22 | 基于改良云平台的网页蜘蛛主题式搜索系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531209.2A CN112597369A (zh) | 2020-12-22 | 2020-12-22 | 基于改良云平台的网页蜘蛛主题式搜索系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112597369A true CN112597369A (zh) | 2021-04-02 |
Family
ID=75200675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531209.2A Pending CN112597369A (zh) | 2020-12-22 | 2020-12-22 | 基于改良云平台的网页蜘蛛主题式搜索系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597369A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883253A (zh) * | 2021-05-06 | 2021-06-01 | 药渡经纬信息科技(北京)有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN114666317A (zh) * | 2022-04-14 | 2022-06-24 | 广州公评科技有限公司 | 一种基于网页即时通信技术的外呼系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418433B1 (en) * | 1999-01-28 | 2002-07-09 | International Business Machines Corporation | System and method for focussed web crawling |
CN102646129A (zh) * | 2012-03-09 | 2012-08-22 | 武汉大学 | 一种主题相关的分布式网络爬虫系统 |
CN103714140A (zh) * | 2013-12-23 | 2014-04-09 | 北京锐安科技有限公司 | 一种基于主题网络爬虫的搜索方法及装置 |
CN103841173A (zh) * | 2012-11-27 | 2014-06-04 | 大连灵动科技发展有限公司 | 一种垂直网络蜘蛛 |
US20160103913A1 (en) * | 2014-10-10 | 2016-04-14 | OnPage.org GmbH | Method and system for calculating a degree of linkage for webpages |
US20160125081A1 (en) * | 2014-10-31 | 2016-05-05 | Yahoo! Inc. | Web crawling |
CN106202259A (zh) * | 2016-06-29 | 2016-12-07 | 合肥民众亿兴软件开发有限公司 | 一种基于本体思想的网页信息提取方法 |
CN106776768A (zh) * | 2016-11-23 | 2017-05-31 | 福建六壬网安股份有限公司 | 一种分布式爬虫引擎的url抓取方法及系统 |
US20170185678A1 (en) * | 2015-12-28 | 2017-06-29 | Le Holdings (Beijing) Co., Ltd. | Crawler system and method |
CN108073693A (zh) * | 2017-12-07 | 2018-05-25 | 国家计算机网络与信息安全管理中心 | 一种基于Hadoop的分布式网络爬虫系统 |
CN108205548A (zh) * | 2016-12-17 | 2018-06-26 | 哈尔滨派腾农业科技有限公司 | 一种基于农业网页信息采集的网络蜘蛛结构及其工作方法 |
-
2020
- 2020-12-22 CN CN202011531209.2A patent/CN112597369A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418433B1 (en) * | 1999-01-28 | 2002-07-09 | International Business Machines Corporation | System and method for focussed web crawling |
CN102646129A (zh) * | 2012-03-09 | 2012-08-22 | 武汉大学 | 一种主题相关的分布式网络爬虫系统 |
CN103841173A (zh) * | 2012-11-27 | 2014-06-04 | 大连灵动科技发展有限公司 | 一种垂直网络蜘蛛 |
CN103714140A (zh) * | 2013-12-23 | 2014-04-09 | 北京锐安科技有限公司 | 一种基于主题网络爬虫的搜索方法及装置 |
US20160103913A1 (en) * | 2014-10-10 | 2016-04-14 | OnPage.org GmbH | Method and system for calculating a degree of linkage for webpages |
US20160125081A1 (en) * | 2014-10-31 | 2016-05-05 | Yahoo! Inc. | Web crawling |
US20170185678A1 (en) * | 2015-12-28 | 2017-06-29 | Le Holdings (Beijing) Co., Ltd. | Crawler system and method |
CN106202259A (zh) * | 2016-06-29 | 2016-12-07 | 合肥民众亿兴软件开发有限公司 | 一种基于本体思想的网页信息提取方法 |
CN106776768A (zh) * | 2016-11-23 | 2017-05-31 | 福建六壬网安股份有限公司 | 一种分布式爬虫引擎的url抓取方法及系统 |
CN108205548A (zh) * | 2016-12-17 | 2018-06-26 | 哈尔滨派腾农业科技有限公司 | 一种基于农业网页信息采集的网络蜘蛛结构及其工作方法 |
CN108073693A (zh) * | 2017-12-07 | 2018-05-25 | 国家计算机网络与信息安全管理中心 | 一种基于Hadoop的分布式网络爬虫系统 |
Non-Patent Citations (2)
Title |
---|
SUMAN SAHA.ET AL: "Rough Set Based Ensemble Prediction for Topic Specific Web Crawling", 2009 SEVENTH INTERNATIONAL CONFERENCE ON ADVANCES IN PATTERN RECOGNITION, pages 153 - 156 * |
张宇超: "垂直搜索引擎Web Spider搜索策略研究", 中国优秀硕士学位论文全文数据库 (信息科技辑) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883253A (zh) * | 2021-05-06 | 2021-06-01 | 药渡经纬信息科技(北京)有限公司 | 数据处理方法、装置、设备及可读存储介质 |
CN114666317A (zh) * | 2022-04-14 | 2022-06-24 | 广州公评科技有限公司 | 一种基于网页即时通信技术的外呼系统 |
CN114666317B (zh) * | 2022-04-14 | 2023-07-18 | 广州公评科技有限公司 | 一种基于网页即时通信技术的外呼系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | Summary of web crawler technology research | |
CN112597369A (zh) | 基于改良云平台的网页蜘蛛主题式搜索系统 | |
CN103559258A (zh) | 基于云计算的网页排序方法 | |
CN113656673A (zh) | 面向广告投放的主从分布内容爬取机器人 | |
Kaur et al. | SIMHAR-smart distributed web crawler for the hidden web using SIM+ hash and redis server | |
Shi et al. | Partitioning dynamic graph asynchronously with distributed FENNEL | |
Langhnoja et al. | Web usage mining to discover visitor group with common behavior using DBSCAN clustering algorithm | |
Deka | NoSQL web crawler application | |
Kumar | Document clustering approach for meta search engine | |
Zhong et al. | A web crawler system design based on distributed technology | |
Aldailamy et al. | Distributed indexing: performance analysis of solr, terrier and katta information retrievals | |
Lin et al. | Design and Implementation of vertical search engine based on Hadoop | |
Wang et al. | Keyword search technology in content addressable storage system | |
Zhang et al. | Web service ranking based on context | |
Chen et al. | A customized method of web crawler for the automatic collection of embedded device firmware | |
Mohammed et al. | Distributed Query Processing and Reasoning Over Linked Big Data | |
Sa | Design and Implementation of Distributed Web Crawler for Drug Website Search using Hefty based Enhanced Bandwidth Algorithms | |
Mingrui | Search Method of Web Traditional Forestry Culture Teaching and Education Resources Based on Fuzzy Set | |
AlShourbaji et al. | Document selection in a distributed search engine architecture | |
Aydin et al. | Distributed log analysis on the cloud using mapreduce | |
Balaji et al. | TOPCRAWL: Community mining in web search engines with emphasize on topical crawling | |
Al Galib et al. | Large Scale Web Crawling and Distributed Search Engines: Techniques, Challenges, Current Trends, and Future Prospects | |
Elshater et al. | Web service discovery for large scale iot deployments | |
Srivastava et al. | IRPDP_HT2: a scalable data pre-processing method in web usage mining using Hadoop MapReduce | |
Du et al. | Analysis on the digging of social network based on user search behavior |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |