CN101561814B - 基于社会标注的主题爬虫系统 - Google Patents

基于社会标注的主题爬虫系统 Download PDF

Info

Publication number
CN101561814B
CN101561814B CN2009100620200A CN200910062020A CN101561814B CN 101561814 B CN101561814 B CN 101561814B CN 2009100620200 A CN2009100620200 A CN 2009100620200A CN 200910062020 A CN200910062020 A CN 200910062020A CN 101561814 B CN101561814 B CN 101561814B
Authority
CN
China
Prior art keywords
page
module
link
mark
society
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.)
Expired - Fee Related
Application number
CN2009100620200A
Other languages
English (en)
Other versions
CN101561814A (zh
Inventor
李瑞轩
文坤梅
赵勇
辜希武
卢正鼎
靳延安
丁益斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN2009100620200A priority Critical patent/CN101561814B/zh
Publication of CN101561814A publication Critical patent/CN101561814A/zh
Application granted granted Critical
Publication of CN101561814B publication Critical patent/CN101561814B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种基于社会标注的主题爬虫系统,包括页面获取模块,页面处理模块,相关度计算模块,存储模块,链接提取模块和链接分析模块。系统充分利用了网页的社会标注,是对页面内容公认的描述,更加贴近网页描述的真实内容,利用此性质来进行网页相关性的判断,将其应用在网络主题爬虫中,指导爬虫的爬行方向,对主题搜索引擎提供优质的网页数据内容。本发明很好地利用了网络带宽资源,在网页获取的过程中减少了不必要的开销,针对不同的需求采用不同的存储方式,减少了IO的消耗,采用了多级缓存机制,减少了阻塞,提高了爬虫的效率。该系统在社会标注的支撑下,优化了爬虫架构,为后续主题搜索引擎其他处理流程提供最佳的网页数据集。

Description

基于社会标注的主题爬虫系统
技术领域
本发明属于计算机数据挖掘技术,具体涉及一种基于社会标注的主题爬虫系统,该系统提出了一种新的爬行策略,根据网页的社会标注与预定主题之间的相关度来指导爬虫的爬行,能够使主题爬虫准确、有效地爬取相关页面,并根据爬取页面的相关度动态调整待爬行网页的优先级。
背景技术
随着因特网的飞速发展,人们越来越依赖计算机网络来查找需要的信息,网络已经成为人们生活中获取信息的一个重要来源。搜索引擎的出现使人们可以利用关键词快速地查询相关的网页信息,避免漫无目的地查找,节省获取信息的时间,从而大大提高了工作效率,如常用的Yahoo !,Google,百度。网络爬虫遵循一定策略在互联网上进行网页爬取,为搜索引擎的后续处理提供数据,在搜索引擎中占重要的地位。随着网络上多元化信息的增多,传统的搜索引擎已经不能满足人们对个性化信息搜索的需求,面向主题的搜索引擎应运而生,从而提供更精确的数据以及更及时地更新。主题搜索引擎是以构筑某一专题领域或学科领域的英特网信息资源库为目标,智能地在互联网上搜集符合设定主题或满足学科需要的信息资源。相应的主题搜索引擎对爬虫提出了更高的要求,通用爬虫要求尽可能多地爬取页面,做到面面俱到,从而可以满足各领域用户的搜索请求,而主题爬虫是为主题搜索引擎服务的,面向的是特定领域的用户,因此要求尽可能多地爬取与主题相关的页面,从而为后续地搜索提供更准确的结果和更友好的用户体验。
在一个爬虫系统中,爬虫的搜索策略决定着爬虫爬行的方向,从而也就决定着爬行所能获取的页面。为使得爬虫能够获取与主题相关度最高的网页集,就必须针对性地制定相应的搜索策略。现有的搜索策略分成两类,一类是基于内容评价的搜索策略,一类是基于网络链接结构评价的搜索策略。
基于内容评价的搜索策略是利用页面中的文本信息作为主题知识指导搜索,并根据页面或链接文本与主题(如关键词,主题相关文档等)之间的相似度来评价链接价值的高低。主要有Fish Search搜索策略和SharkSearch搜索策略。Fish Search是在1993年由荷兰TUE大学Debra教授提出的。Fish Search将用户输入的查询关键字或者短语作为主题,将包含查询串的页面当作是主题相关的,并且只搜索主题相关的页面。算法中动态维护一个URL优先队列,根据Potential_score(网页的相关度)从高到低进行搜索,Potential_score只有1,0.5,0三种值。Shark Search在Fish Search的基础上做了改进,充分利用锚文本以及链接的上下文,采用空间向量模型来改善相似度计算时简单的两值判断所带来的问题,将对象相关值进行了细化。上面所讨论的两种算法都是基于内容评价的搜索算法,根据语义相似度的高低决定链接的访问顺序。这类方法起源于文本检索中对文本相似度的评价,它的显著优点是计算量比较小。但是,因为Web页面不同于传统的文本,它是一种半结构化的文档,其中包含了许多结构信息,Web页面不是单独存在的,页面中的超链接在一定程度上表示了页面之间存在着某些关系。由于基于内容评价的网络爬虫忽略了这些信息,因而在预测超链接的价值方面存在一些缺陷,容易造成网页的误选。此外,评价的准确性也依赖于对主题关键词集合的选择和构建。
基于网络链接结构评价的搜索策略是利用Web结构信息指导搜索,并通过分析Web页面之间的相互引用关系来确定页面和链接的重要性价值。把对页面的引用看作是对它所指的页面的赞许,引用表现在页面上就是超链接。当页面A通过超链接指向页面B时,说明页面B与页面A相关联并且页面B是A认为质量较好的页面。通过网页之间的链接结构,来评价与网页有直接或间接链接关系的网页的算法,典型的有PageRank和HITS,两者都是通过对网页间链接度的递归和规范化计算,得到每个网页的重要度评价。PageRank算法认为如果一个页面被许多其他页面引用,则这个页面很可能就是重要页面;一个页面尽管没有被多次引用,但被一个重要页面引用,那么这个页面很可能也是重要页面;一个页面的重要性被均分并将传递到它所引用的页面中。从而爬虫可以按照网页的重要性进行爬行。PageRank算法考虑了用户访问行为的随机性,但忽略了用户访问行为的目的性,即网页和链接与查询主题的相关性,在返回结果中一些与主题无关但权重较高的网页将会排在比较靠前的位置。针对这个问题,HITS算法计算页面的Authority权重和Hub权重,并以此决定页面中链接的访问顺序。基于链接结构评价的搜索策略,考虑了链接的结构特征,对主题相关网站搜索时使用效果较好,但由于忽略页面内容与主题的相关性,容易出现搜索偏离主题的“主题漂移”问题,另外在搜索过程中需要迭代计算PageRank值或Authority及Hub权重,当页面和链接数量不断增长时计算复杂度也呈指数级增长。
标注也称为标签(Tagging)或书签(Bookmark),可理解为对目标或对象标示的名称。标注是个体行为,如果通过某种方式将存在的标签汇集在一起,就成为社会标注(Social Annotation),也称社会标签(SocialBookmark)。社会标注作为一种新型的网络资源管理和组织形式,在许多网络应用中发挥着重要作用。目前,社会标注已经成为人们对网络资源自由标注、自由分类的专业术语。越来越多的网络文档,包括网页、博客文章、图像以及视频等都得到了标注。标注是主题相关的网页资源的一种概要性描述;同一标注的使用量可以显示出该主题下网页的数量规模,正是此特性使得社会标注可以应用到主题爬虫的搜索策略上,准确地发现相关主题。
发明内容
本发明的目的在于设计了一种基于社会标注的网络爬虫系统,该系统中爬虫的爬行策略是通过社会标注来实现的,具有爬行获取页面相关度高,与预定主题贴切,爬行效率高的特点。
本发明提供的基于社会标注的主题爬虫系统,该系统包括页面获取模块,页面处理模块,相关度计算模块,存储模块,链接提取模块和链接分析模块;
存储模块用于存储爬行过程中所获取的页面数据;
页面获取模块根据被获取网站的机器人禁入协议文件、网络带宽的限制以及网页优先级的高低,利用网页地址列表及其缓存进行页面爬取,并将爬取后的页面传送给页面处理模块;
页面处理模块采用多线程并行处理,每个线程接受从页面获取模块传过来的网页,通过对比存储模块内的数据,判断该页面是否已经被获取过,并将不重复的页面传送给相关度计算模块;
相关度计算模块接收页面处理模块传送过来的不重复页面,从存储模块获取该页面的社会标注、上级页面的社会标注,以及链入该页面的其他页面与预定主题的相关度,综合所有这些因素计算该页面与预定主题的相关度,并将计算得到的相关度及页面的相关信息存储到存储模块中,然后将满足相关度要求的页面传送给链接提取模块;
链接提取模块对满足相关度要求的页面进行修复,然后进行页面解析,将包含在页面中的链接提取出来,再对链接进行规范化处理,使其符合统一的格式,再传送给链接处理模块;
链接处理模块用于进行链接过滤,使链接地址符合预先设定的规则,该模块还负责从接收到的链接中去掉已经获取过的链接,将待取链接地址进行DNS(域名服务器)的预取工作,并为链接和DNS缓存提供缓冲区。
上述结构的爬虫系统提出了以社会标注为基础的网络爬虫的搜索策略,并以此为核心建立起一个爬虫系统。针对具体的预定主题,本系统在给定种子链接的基础上,依托社会标注库高速地爬取主题相关页面,完整地实现了一个爬虫的功能。本系统利用多种优化策略提高爬虫效率,进而极大地解决了现有爬虫的瓶颈部分——网络带宽,将降低网页爬取效率的因素降到最低,实现了高速准确的网络爬虫系统。具体而言,本发明具有如下优点:
(1)爬取页面与主题贴切:获取的页面与预定主题的相关度大,使用社会标注计算页面的主题相关度,社会标注是对网页内容的概括和总结,是具备语义信息的,能够最大程度地真实反映网页所代表的主题内容。
(2)网络带宽利用率高:通过使用异步IO以及多线程技术,能够极大降低其他步骤对于获取页面操作的延误时间,充分利用了网络带宽,解决了爬虫的瓶颈部分,即网络带宽由于等待页面的返回而一直空闲。
(3)程序运行效率高:通过使用多级缓存机制,减少了由于多线程而导致的频繁加锁解锁操作的次数,加锁解锁操作会暂停网页的获取,从而在切换时浪费了大量的时间,影响了爬虫整体运行效率。通过使用多级缓存,减少了切换的次数,从而提高了程序运行的效率。
附图说明
图1是本发明系统的结构示意图。
图2是本发明系统的总体流程图。
图3是本发明系统的页面获取模块的工作流程图。
图4是本发明系统的链接分析模块的工作流程图。
图5是本发明系统的一种具体实施方式的结构示意图。
具体实施方式
下面结合附图和实例对本发明作进一步详细地说明。
如图1所示,本发明提出了基于社会标注的网络爬虫策略,基于此策略设计了异步IO的多线程爬虫系统,该系统包括页面获取模块100,页面处理模块200,相关度计算模块300,存储模块400,链接提取模块500,链接分析模块600。
页面获取模块100负责网页的获取,根据被获取网站的robots.txt(robots.txt:机器人禁入协议文件)、网络带宽的限制以及网页优先级的高低来进行页面获取。页面获取模块100将获取的页面交由页面处理模块200来进行处理。
页面获取模块100从种子URL(URL:统一资源定位符,也称为网页地址)列表出发来进行页面的爬取,页面爬取采用异步IO的方式进行,加以一系列的缓存来大大减少获取页面前期的准备工作,例如采用DNS(DNS:域名服务器)缓存以及线程池等技术。
页面处理模块200接受从页面获取模块100传过来的网页,通过对比存储模块400内的数据,判断该页面是否已经被获取过,并将不重复的页面传给相关度计算模块300进行下一阶段的处理。互联网上存在大量网页包含的却是相同的内容,页面处理模块200通过比较判断来避免相同页面的重复处理,将计算机的处理能力充分地用于未知页面的处理。
相关度计算模块300用于对传递过来的网页进行相关度的计算,从而确定与预定主题的相关程度,进而决定是否对该页面进行下一步的操作。
影响页面相关度的因素除了自身页面的社会标注外,还和该页面的上两级页面的社会标注,以及引用该页面的其他页面的主题相关度有关,这些因素共同决定了该页面与预定主题的相关度,从而基于相关度来指导爬虫的爬行方向,实现预定主题相关页面的爬取。相关度计算模块300从存储模块400获取自身页面的社会标注,该页面的上两级页面的社会标注,以及链入该页面的其他页面的社会标注,综合所有这些因素来计算该页面的主题相关度,继而调用存储模块400存储计算结果和页面相关的信息,然后传给链接提取模块500。
存储模块400主要用于存储爬行过程中所获取的页面数据,数据除了给搜索引擎的索引部件使用以外,更重要的是在爬虫的其他模块中提供必要的数据以支撑其他模块的正常运行,包括给页面处理模块200提供页面信息,使其不重复处理页面;给相关度计算模块300提供页面的相关度信息,以及页面的链接结构信息,以供其计算相关度,并将计算所得相关度进行存储;给链接处理模块600提供已获取链接信息,去掉已经爬行过的页面。
链接提取模块500将满足相关度的页面进行修复,然后进行页面解析,将包含在页面中的各种显式的或者隐式的链接提取出来,进行链接的规范化,使其符合统一的格式,在系统内部对于同一个URL地址只存在一种表示方式,便于判断是否相等,便于链接处理模块600去除重复页面。
链接处理模块600用于链接过滤,使链接地址符合预先设定的规则,比如只获取特定域名的,或者在特定IP段内的域名地址。除此以外该模块还负责从获取的链接中去掉已经获取过的,将待取链接地址进行DNS的预取工作,并为链接和DNS缓存提供缓冲区,以保证爬取效率的最大化。
下面举例具体说明本发明基于社会标注的主题爬虫系统中各部分的具体构成。
如图5所示,页面获取模块100包括爬虫配置模块110,待取链接队列120,域名解析模块130,礼貌策略模块140,机器人禁入协议文件(robots.txt)排除模块150,套接字连接获取模块160,页面处理模块170,待取链接队列一级缓存180。
爬虫配置模块110主要是对爬虫运行时的各项参数进行配置,以确保系统的正常运行,主要参数有爬行主题的描述(可以是多个关键词,或者是一段相关的文字)、数据存放位置、爬行深度和广度、爬行域名限制或者IP限制、并发处理线程数、相关度阈值、各项临时数据的缓存大小以及礼貌策略类型等。在开始爬行前通过修改相应的配置文件来进行配置,最后将种子URL列表注入到待取链接队列120,种子URL列表一般为人工选取的贴合主题的一些权威的URL地址。
待取链接队列120存放着待获取的页面URL,这个待取队列保持一个合适的长度,同时URL按照相关度在待取队列中进行排序,优先爬取相关度高的URL,优先获得最相关的页面,提高了主题爬虫的准确度。待取链接队列120将所有地址都被处理完以后,自动从待取链接队列一级缓存180中拷贝URL进行填充,然后继续进行页面获取,如果一级缓冲为空,则等待一定时间,如果一直为空,则停止爬行。待取链接队列120取出URL地址交由域名解析模块130。
域名解析模块130主要对URL地址进行域名解析,获取对应的IP地址,为后续的套接字连接做准备,域名解析首先在DNS预取模块630中的DNS缓存中查询,如果存在则直接使用,如果不存在则从DNS服务器进行获取,并将获取回来的记录进行缓存,以便于下次访问同一域名时直接使用。URL地址通过域名解析模块130后,转交给礼貌策略模块140。
礼貌策略模块140主要针对目标网站做访问速度的控制,减轻爬虫对所爬行主机的影响,不影响所爬行主机对外提供服务,进行友好地爬行。一般采用固定时间间隔再次爬行的方法进行限制,该时间间隔在爬虫配置模块110中进行设置,如果对同一个主机的访问间隔小于配置的最短间隔则推迟访问,如果访问间隔大于配置的间隔则转交给robots.txt排除模块150。
robots.txt排除模块150是遵循网站的要求,按照robot.txt文件中的描述进行爬行,robots.txt首先在robots.txt预取模块640中查询,如果已经获取则直接使用;如果没有则从网站根目录获取,并缓存,以便下次访问同一站点时使用。如果链接地址在robots.txt禁止被爬行,那么就舍弃该页面;如果允许被爬行,那么就转交给套接字连接获取模块160。
套接字连接获取模块160是基于异步IO的获取机制,发送获取请求后,模块并不等待页面的返回,而是继续获取下一个页面,没有等待的过程,最大程度地利用带宽,在一定的时间获取最多的页面。如果有页面返回则交给页面处理分配模块170,使其他模块对网页获取模块的影响最小,大大地提高了爬虫的效率。爬虫最大的瓶颈就是CPU的处理能力大大的超过了网络带宽所能提供的数据,因此只有将网络带宽的利用率最大化,才能真正地提高爬虫的效率。
页面处理分配模块170主要是对获取的页面进行分配处理,采用固定线程池,有页面传来时,从线程池中获取一个线程进行处理,如果没有空闭的线程,那么就在线程池的任务队列中进行排队,等有空闲线程时再取出进行处理,在线程中将页面交给页面处理模块200处理。
存储模块400主要包括信息存取模块410,数据备份模块420,网页信息存取接口430,相关度信息存取接口440,网页链接信息存取接口450,社会标注存取接口460。
信息存取模块410是存储的基础设施,主要是确定存储的介质,可以选择Oracle,MySql等关系数据库,也可以使用纯文本格式。本举例中选择的是BerkeleyDB,具有四种存储方式,可以针对上层具体的存储对象来调整存储方式以实现最佳的效率。
数据备份模块420可以自动的进行数据的备份,同时也可以手动备份,以保证在数据损坏后实施数据恢复,保证数据的安全。
网页信息存取接口430用来实现网页内容的存取,BerkeleyDB中采用RECNO模式进行存放,是顺序的不定长的存储方式,以供后续的网页分析使用。
相关度信息存取接口440用来实现网页的相关度信息的存取,提供数据给后续的排序等其他操作使用,采用B-TREE模式进行存放。
网页链接信息存取接口450用来实现网页之间的链接信息的存取,供计算相关度值时使用,采用B-TREE模式进行存放。以网页的域名作为前缀来存储,可以高速地定位特定页面。
社会标注存取接口460用来实现网页的社会标注的存取,以提供给计算相关度值时使用,存放模式同样是B-tree模式,因为数量大,占用空间大,使用该模式可以快速的根据网页URL获取社会标注列表来进行计算。
页面处理模块200主要是针对网页去重,使得不同链接同一内容的页面只处理一次,节约了存储空间,同时又减少了CPU(CPU:中央处理单元)的处理时间,及时地让出了线程为其他页面处理。去重有多种方式,本举例中采用较简单的全文Hash值比对法,对页面计算Hash值以后,通过网页信息存取接口430获取相关信息判断是否已经存在相同Hash值的网页,如果存在则退出线程,如果不存在则交给相关度计算模块300继续处理。
相关度计算模块300主要是利用社会标注计算网页的主题相关度。计算主要涉及该网页的社会标注,该网页的上级网页的社会标注以及链入网页的社会标注,综合三者计算相关度,然后比较阈值,判断是否相关。其中链入网页集通过网页链接信息存取接口450获取,网页的社会标注通过社会标注存取接口460获取。本举例中用F(p)表示页面p的上级页面,比如页面p的网页地址是http://domain.com/sub,那么F(http://domain.com/sub)=http://domain.com,用R(p)来表示页面p与主题的相关度,ILs(p)表示页面p的链入链接集合,SA(p)表示页面p的社会标注,RA(d,i)表示社会标注i与主题描述d的相关度。那么对于一个页面p与主题描述的相关度R(p)可以用以下公式描述:
Figure G2009100620200D00111
其中RT(p)=TOPn(SA(ILs(p)))
公式中
Figure G2009100620200D00112
表示页面p的社会标注与主题的相关度,而
Figure G2009100620200D00113
表示页面p继承了上一级页面的社会标注所获取的主题相关度,
Figure G2009100620200D00114
表示页面p继承了上两级页面的社会标注所获取的主题相关度,RT(p)即TOPn(SA(ILs(p)))表示p的链入页面集合中出现次数最多的n个标注,
Figure G2009100620200D00115
表示页面p继承了链入页面集合的社会标注所获取的主题相关度,其中α,β,
Figure G2009100620200D00116
δ为衰减因子,上两级页面的继承关系必然存在一个衰减量,上一级页面相关度比上两级相关度要大,因此上两级页面继承的衰减度要大,而从其他页面继承的社会标注相关度比上两级的稍大,4个衰减因子的大小关系一般是自身社会标注的主题相关度是最重要的部分,α取值在(1,2)之间,一般取值1,而β,
Figure G2009100620200D00118
一般取值大约是在α的基础上以2的指数级下降,β=α/2±0.1,
Figure G2009100620200D00119
Figure G2009100620200D001110
Figure G2009100620200D001111
其中RT(p)表示在这个链入集合中取出出现次数最多的前n个社会标注,计算时只计算这n个标注,因为这n个标注最能体现其他页面对于页面p的主题的认同,也能真实地反映该页面的真实含义,n的取值范围在(3,6)之间能够比较准确地反映链入页面对页面p的影响,一般取值5。RT(p)获取的最终结果是按照标注出现的次数来排序,出现次数相同的时候按照链入页面的相关度值来排序。其中RA的计算方法可以采用经典的空间向量模型来计算,也可以使用互信息来计算,通过选定的方法以及实际需求来确定各个衰减因子的值,1表示完全相关,0表示完全不相关,(0,1)表示部分相关,α,β,
Figure G2009100620200D001112
δ可依次取值为1,0.5,0.25,0.125,计算结果R(p)大于等于1时就认为是完全相关的,等于0就是完全不相关,(0,1)之间表示部分相关,主题相关度阈值的大小直接影响了收录页面的数量,太大了收录页面太少,太小了收录页面的质量太低,取值范围在(0.3,0.5)比较合适,可以取0.4为主题相关度阈值基点来判断页面相关性。对于种子URL的相关度,初始值设为1,表示完全相关。在实际运行过程中,可以通过调节衰减因子和阈值使获取的相关页面数量与质量达到比较好的平衡。计算完成后将相关度信息以及该页面的社会标注通过相关度信息存取接口440和社会标注存取接口460进行存储。对于满足相关度阈值的页面转交给链接提取模块500。
链接提取模块500主要包括网页修复模块510,链接解析模块520,链接规范化模块530。
网页修复模块510主要是针对编写不规范的网页进行修复,比如对不闭合TAG进行闭合,修复后交给链接解析模块520,以便于后续的链接解析。
链接解析模块520对网页进行解析,提取其中的链接,提取可以采用的方式有两种,一种是正则表达式匹配;另一种是先将页面转化为DOM(DOM:文档对象模型)树,然后根据结构特征提取链接。本举例中采用先转化为DOM树,然后再使用XPath来进行链接获取。链接全部提取出后交由链接规范化模块530。
链接规范化模块530针对同一个URL地址存在多种不同表示方法,不利于后续的根据URL来去重,因此需要将URL统一规范为一种形式。链接提取完成以后将提取出的链接交由链接处理模块600处理。
链接处理模块600包括链接过滤模块610,链接去重模块620,DNS预取模块630,机器人禁入协议文件(robots.txt)预取模块640,待取链接队列二级缓冲650。
链接过滤模块610是根据爬虫配置文件中爬行的深度、广度、范围对链接进行过滤,使爬虫在特定范围内爬行。将通过链接过滤的链接传入链接去重模块620。
链接去重模块620的功能是将已经获取的URL链接舍弃,因为链接规范化模块530已经将URL进行了规范化,同一个页面只存在一种URL表示方式,因此只需比较URL即可将已爬行的页面舍弃掉。判断该链接是否已经被获取是通过查询网页信息获取接口430来实现的,如果已获取则舍弃,接着判断下一个链接;如果没有获取则转交给DNS预取模块630、robots.txt预取模块640以及待取链接队列二级缓冲650。
DNS预取模块630是在一个独立的线程中运行,接收来自链接去重模块620传入的链接地址。本模块提前获取该地址中域名对应的IP地址提供给域名解析模块130,使得域名解析模块130进行域名解析时可以直接从缓存中得到对应的IP地址,避免了DNS解析的等待过程,加速了爬虫的爬行。
robots.txt预取模块640在一个独立的线程中运行,接收来自链接去重模块620传入的链接地址,提前获得网站的robots.txt并存放在缓存中,提供给robots.txt排除模块150使用。
待取链接队列二级缓存650接收链接去重模块620传入的链接地址,一个页面链接处理完以后,该页面中包含的链接地址全部存在待取链接队列二级缓存650中,然后一次性写入待取链接队列一级缓存180,避免了添加每个链接时都要阻塞网页获取进程。在添加链接地址和待取链接队列120中加了两级缓存,避免了外部对主线程的阻塞,并且数据都被提前放入缓存,从而可以不断地进行页面获取。
整个系统流程如图2,其处理流程包括:
(1)爬虫的配置
对爬虫进行初始化,管理员通过配置文件配置爬虫的参数(处理线程数,主题描述,数据库存放位置等),填充种子URL列表。
(2)爬取页面,进行页面的获取以及页面处理任务的分配,主要发生在页面获取模块100中。如图3所示,具体流程如下:
(2.1)获取待取URL,对待获取页面进行DNS解析,从DNS缓存中获取对应IP地址,如果缓存中不存在,则调用相应函数去DNS服务器获取,并将新获取的IP与域名信息加入DNS缓存。
(2.2)使用礼貌策略,判断待取URL主机的访问间隔是否在设置时间范围内,如果超出设置的时间,则继续下一步,如果没有,则将该页面放入待取链接队列,返回(1.1)
(2.3)获取待爬取网站的robots.txt,判断待爬取页面是否为禁止爬行页面,如果是,放弃,返回(1.1),如果不是则继续下一步。
(2.4)发起套接字(Socket)链接,获取页面。有页面返回,则将该页面交由图3处理线程处理,如果没有,返回(1.1)继续执行
(3)网页处理模块200通过比对网页库从而确定该页面是否已经获取并被分析。如果该页面已经被分析,则继续下一步,否则,舍弃该页面,返回继续处理下一个页面。
(4)相关度计算模块300对该页面进行相关度的计算,该计算基于社会标注进行。对于相关度满足阈值的网页进行下一步处理,并调用页面存储模块400将页面进行存储,相关度不满足的页面进行丢弃或者进行处理后对解析出的URL降低爬取时的优先级。
(5)链接提取模块500对网页进行修复,主要是修复HTML(超文本标记语言)标签,以便于分析,分析修复后的页面,进行链接提取,并做URL规范化,将提取出的URL按照一定的规则进行处理,以保证指向同一个页面的URL形式相同。
(6)链接处理模块600对获取的链接进行处理,如图4所示:
(6.1)首先判断待处理链接队列是否为空,如果不为空,继续(6.2),如果为空则将二级URL和DNS缓冲队列拷贝到相应的一级缓冲队列,转向(6.3)。
(6.2)通过查询存储模块400来判断是否该链接是否已经被获取,如果是则舍弃,如果没有被获取,加入URL二级缓冲队列和DNS预取二级缓冲队列。返回(6.1)。
(6.3)DNS预取队列从DNS一级缓冲队列中取得数据。
(6.4)首先判断DNS预取队列是否为空,如果为空,转向(6.3)。如果不为空,对DNS预取队列中的URL所指向的域名进行处理,如果该域名对应的IP地址已经被获取,即存在于DNS缓存中,则跳过继续处理下一条记录,如果没有被获取,则发送请求获取对应的IP地址,并存放在NDS缓存中,重复(6.4)直到(6.3)无法获取数据,DNS预取队列为空为止。
本发明提出的基于社会标注的主题爬虫系统优化了网页爬取过程,对于数据存放的形式也做了较好的处理。在爬行的过程中该爬虫根据社会标注判断相关性,从而紧密地围绕着预定主题进行爬行,提高了主题爬虫的速度以及获取页面的质量。
以上所述为本发明的较佳实例而已,但本发明不应该局限于该实例和附图所公开的内容。所以,凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

Claims (5)

1.一种基于社会标注的主题爬虫系统,该系统包括页面获取模块(100),页面处理模块(200),相关度计算模块(300),存储模块(400),链接提取模块(500)和链接处理模块(600);
存储模块(400)用于存储爬行过程中所获取的页面数据;
页面获取模块(100)根据被获取网站的机器人禁入协议文件、网络带宽的限制以及网页优先级的高低,利用网页地址列表及其缓存进行页面爬取,并将爬取后的页面传送给页面处理模块(200);
页面处理模块(200)采用多线程并行处理,每个线程接受从页面获取模块(100)传过来的网页,通过对比存储模块(400)内的数据,判断该页面是否已经被获取过,并将不重复的页面传送给相关度计算模块(300);
相关度计算模块(300)接收页面处理模块传送过来的不重复页面,从存储模块(400)获取该页面的社会标注、上级页面的社会标注,以及链入该页面的其他页面与预定主题的相关度,综合所有这些因素计算该页面与预定主题的相关度,并将计算得到的相关度及页面的相关信息存储到存储模块(400)中,然后将满足相关度要求的页面传送给链接提取模块(500);
链接提取模块(500)对满足相关度要求的页面进行修复,然后进行页面解析,将包含在页面中的链接提取出来,再对链接进行规范化处理,使其符合统一的格式,再传送给链接处理模块(600);
链接处理模块(600)用于进行链接过滤,使链接地址符合预先设定的规则,该模块还负责从接收到的链接中去掉已经获取过的链接,将待取链接地址进行DNS的预取工作,并为链接和DNS缓存提供缓冲区。
2.根据权利要求1所述的基于社会标注的主题爬虫系统,其特征在于:页面获取模块(100)包括爬虫配置模块(110),待取链接队列(120),域名解析模块(130),礼貌策略模块(140),机器人禁入协议文件排除模块(150),套接字连接获取模块(160),页面处理分配模块(170)和待取链接队列一级缓存(180);
爬虫配置模块(110)用于对爬虫运行时的各项参数进行配置,爬虫配置文件包括最短间隔,爬行的深度、广度和范围,并将种子网页地址列表提供给待取链接队列(120);
待取链接队列(120)用于存放待获取的页面的网页地址,同时网页地址按照相关度在待取队列中进行排序,实时从待取链接队列一级缓存(180)中提取页面的网页地址进行填充,并将网页地址交由域名解析模块(130);
域名解析模块(130)对接收的网页地址进行域名解析,获取对应的IP地址,再转交给礼貌策略模块(140);
礼貌策略模块(140)对目标网站的访问速度进行控制,对同一个主机的访问间隔大于等于配置的最短间隔的请求,转交给机器人禁入协议文件排除模块(150),否则推迟访问;
机器人禁入协议文件排除模块(150)遵循网站的要求,按照机器人禁入协议文件中的描述进行爬行,将允许被爬行的链接地址转交给套接字连接获取模块(160);
套接字连接获取模块(160)基于异步IO的获取机制,发送获取请求,当有页面返回时转交给页面处理分配模块(170);
页面处理分配模块(170)采用固定线程池的方式对接收的页面进行分配处理,接收到页面后,从固定线程池中请求一个线程进行处理,如果固定线程池中没有空闲线程,则在固定线程池的任务队列中排队等待处理;在线程中将页面交给页面处理模块(200)处理。
3.根据权利要求2所述的基于社会标注的主题爬虫系统,其特征在于:存储模块(400)主要包括信息存取模块(410),数据备份模块(420),网页信息存取接口(430),相关度信息存取接口(440),网页链接信息存取接口(450),社会标注存取接口(460);
网页信息存取接口(430)负责按照选取的存储方式在信息存取模块(410)中存取网页内容;
相关度信息存取接口(440)负责按照选取的存储方式在信息存取模块(410)中存取网页的相关度信息;
网页链接信息存取接口(450)负责按照选取的存储方式在信息存取模块(410)中存取网页之间的链接信息;
社会标注存取接口(460)负责按照选取的存储方式在信息存取模块(410)中存取社会标注;
数据备份模块(420)对信息存取模块(410)中的存储数据进行备份。
4.根据权利要求3所述的基于社会标注的主题爬虫系统,其特征在于:
链接处理模块(600)包括链接过滤模块(610),链接去重模块(620),DNS预取模块(630),机器人禁入协议文件预取模块(640),待取链接队列二级缓存(650);
链接过滤模块(610)根据爬虫配置文件中爬行的深度、广度、范围对链接进行过滤,使爬虫在设定的范围内爬行,将通过链接过滤的链接传入链接去重模块(620);
链接去重模块(620)通过查询网页信息存取接口(430),将已经获取过的网页地址链接舍弃,将没有获取过的网页地址链接分别转交给DNS预取模块(630)、机器人禁入协议文件预取模块(640)以及待取链接队列二级缓存(650);
DNS预取模块(630)接收来自链接去重模块(620)传入的链接地址,提前获取该地址中域名对应的IP地址,并提供给域名解析模块(130);
机器人禁入协议文件预取模块(640)接收来自链接去重模块(620)传入的链接地址,提前获得网站的机器人禁入协议文件并存放在缓存中,并提供给机器人禁入协议文件排除模块(150);
待取链接队列二级缓存(650)接收链接去重模块(620)传入的链接地址,并一次性写入待取链接队列一级缓存(180)。
5.根据权利要求3或4中任一所述的基于社会标注的主题爬虫系统,其特征在于相关度计算模块(300)执行下述处理步骤:
第1步接收页面处理模块(200)传入的页面,由社会标注存取接口(460)获取其社会标注;
第2步分析获取该页面上两级页面的社会标注以及链入该页面的其他页面的社会标注;
第3步按照公式(I)计算得到页面p的主题相关度R(p):
Figure FDA0000050841730000041
其中RT(p)=TOPn(SA(ILs(p)))
式中,F(p)表示页面p的上级页面,SA(p)表示页面p的社会标注,SA(F(p))表示页面p的上级页面的社会标注,SA(F(F(p)))表示页面p的上二级页面的社会标注,ILs(p)表示页面p的链入链接集合,RA(d,i)表示社会标注i与主题描述d的相关度;
Figure FDA0000050841730000042
表示页面p的社会标注与主题的相关度,而
Figure FDA0000050841730000043
Figure FDA0000050841730000044
表示p继承了上两级页面的社会标注所得到的相关度,
Figure FDA0000050841730000045
表示页面p继承了链入页面集合的社会标注所得到的相关度;α,β,
Figure FDA0000050841730000046
δ为衰减因子,
Figure FDA0000050841730000047
TOPn(SA(ILs(p)))表示p的链入页面集合中出现次数最多的n个标注,n的取值范围在(3,6);
第4步将计算所得主题相关度与设定的主题相关度阈值进行比较,大于设定值则判定为相关,否则为不相关;
第5步将计算结果通过相关度信息存取接口(440)进行存储,并将被判定为相关的页面传给链接提取模块(500)处理。
CN2009100620200A 2009-05-08 2009-05-08 基于社会标注的主题爬虫系统 Expired - Fee Related CN101561814B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100620200A CN101561814B (zh) 2009-05-08 2009-05-08 基于社会标注的主题爬虫系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100620200A CN101561814B (zh) 2009-05-08 2009-05-08 基于社会标注的主题爬虫系统

Publications (2)

Publication Number Publication Date
CN101561814A CN101561814A (zh) 2009-10-21
CN101561814B true CN101561814B (zh) 2012-05-09

Family

ID=41220621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100620200A Expired - Fee Related CN101561814B (zh) 2009-05-08 2009-05-08 基于社会标注的主题爬虫系统

Country Status (1)

Country Link
CN (1) CN101561814B (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102087648B (zh) * 2009-12-03 2013-06-19 北京大学 一种新闻评论页面的爬取方法及系统
CN102117275B (zh) * 2009-12-31 2012-11-07 北大方正集团有限公司 一种基于互联网定向站点网页数据采集的方法及装置
CN102314435A (zh) * 2010-06-30 2012-01-11 腾讯科技(深圳)有限公司 搜索网页内容的方法及系统
CN102346737A (zh) * 2010-07-30 2012-02-08 腾讯科技(深圳)有限公司 一种硬件设备驱动程序的共享方法和装置
CN102469167B (zh) * 2010-11-01 2015-07-01 中国移动通信集团北京有限公司 域名查询的实现方法和系统
CN102117320B (zh) * 2011-01-11 2012-07-25 百度在线网络技术(北京)有限公司 一种结构化数据搜索的方法和装置
CN102779133A (zh) * 2011-05-12 2012-11-14 苏州同程旅游网络科技有限公司 基于多平台、多供应商的搜索比价方法
CN103176985B (zh) * 2011-12-20 2016-06-29 中国科学院计算机网络信息中心 一种及时高效的互联网信息爬取方法
CN103389983B (zh) * 2012-05-08 2016-12-14 阿里巴巴集团控股有限公司 一种用于网络爬虫系统的网页内容抓取方法及装置
CN103455492B (zh) * 2012-05-29 2018-10-30 腾讯科技(深圳)有限公司 一种搜索网页的方法和装置
CN102880698B (zh) * 2012-09-21 2015-08-05 新浪网技术(中国)有限公司 一种抓取网站确定方法及装置
CN103870461B (zh) * 2012-12-10 2019-09-10 腾讯科技(深圳)有限公司 主题推荐方法、装置和服务器
CN103345645B (zh) * 2013-06-27 2016-09-28 复旦大学 面向网购平台的商品图像类别预测方法
CN103310012B (zh) * 2013-07-02 2016-09-28 北京航空航天大学 一种分布式网络爬虫系统
CN104750852B (zh) * 2015-04-14 2018-03-09 海量云图(北京)数据技术有限公司 中文地址数据的发现与分类方法
CN104951512A (zh) * 2015-05-27 2015-09-30 中国科学院信息工程研究所 一种基于互联网的舆情数据采集方法及系统
CN105187519B (zh) * 2015-08-26 2019-01-08 福建星网锐捷通讯股份有限公司 一种基于AIO的socket传输系统
CN105868258A (zh) * 2015-12-28 2016-08-17 乐视网信息技术(北京)股份有限公司 爬虫系统
CN107045507B (zh) * 2016-02-05 2020-08-21 北京国双科技有限公司 网页爬取方法及装置
CN106055638A (zh) * 2016-05-30 2016-10-26 国家基础地理信息中心 一种网络地理信息更新方法及系统
CN106528802A (zh) * 2016-11-11 2017-03-22 金蝶软件(中国)有限公司 一种数据采集方法及装置
CN107885777A (zh) * 2017-10-11 2018-04-06 北京智慧星光信息技术有限公司 一种基于协作式爬虫的抓取网页数据的控制方法及系统
CN107908773A (zh) * 2017-11-30 2018-04-13 南京信息工程大学 基于宝藏图的链接与内容结合的聚焦网络爬虫搜索方法
CN108416046B (zh) * 2018-03-15 2020-05-26 阿里巴巴(中国)有限公司 序列爬虫边界检测方法、装置和服务器
CN108520024A (zh) * 2018-03-22 2018-09-11 河海大学 基于Spark Streaming的双周期爬虫系统及其运行方法
CN110830496B (zh) * 2018-03-30 2021-08-17 厦门白山耘科技有限公司 一种防止扫描权限文件的系统的使用方法及作业方法
CN108897788B (zh) * 2018-06-11 2023-04-07 平安科技(深圳)有限公司 数据爬取方法、装置、计算机设备及存储介质
CN109670099A (zh) * 2018-12-21 2019-04-23 全通教育集团(广东)股份有限公司 基于教育网络信息主题采集方法
CN109635182A (zh) * 2018-12-21 2019-04-16 全通教育集团(广东)股份有限公司 基于教育信息主题的并行化数据跟踪方法
CN109766501B (zh) * 2019-01-14 2021-08-17 北京搜狗科技发展有限公司 爬虫协议管理方法及装置、爬虫系统
CN110390067B (zh) * 2019-07-22 2022-03-29 出门问问(苏州)信息科技有限公司 一种网页标注方法、装置、存储介质和电子设备
CN112579853A (zh) * 2019-09-30 2021-03-30 顺丰科技有限公司 一种对爬取链接排序的方法、装置及存储介质
CN112417240A (zh) * 2020-02-21 2021-02-26 上海哔哩哔哩科技有限公司 网站链接检测方法、装置、计算机设备
CN112084390B (zh) * 2020-09-07 2024-03-19 广东赛博威信息科技有限公司 一种电商平台中利用自动结构化爬虫搜索的方法
CN117725284B (zh) * 2023-12-22 2024-05-14 武汉威克睿特科技有限公司 一种基于爬虫的社交网络数据采集系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1851705A (zh) * 2006-05-30 2006-10-25 南京大学 基于本体的主题式网络爬虫系统构建方法
CN101042699A (zh) * 2007-04-28 2007-09-26 华中科技大学 基于访问控制的安全搜索引擎系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1851705A (zh) * 2006-05-30 2006-10-25 南京大学 基于本体的主题式网络爬虫系统构建方法
CN101042699A (zh) * 2007-04-28 2007-09-26 华中科技大学 基于访问控制的安全搜索引擎系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘朋等.基于内容和链接分析的主题爬虫策略.《计算机与数字工程》.2009,第37卷(第1期),22-24. *
吴炜等.一种基于主题相关度的网页排序算法.《微电子学与计算机》.2008,第25卷(第9期),221-224. *

Also Published As

Publication number Publication date
CN101561814A (zh) 2009-10-21

Similar Documents

Publication Publication Date Title
CN101561814B (zh) 基于社会标注的主题爬虫系统
US7644069B2 (en) Search ranking method for file system and related search engine
CA2595674C (en) Multiple index based information retrieval system
US11113291B2 (en) Method of and system for enriching search queries for ranking search results
CN104361102B (zh) 一种基于群组匹配的专家推荐方法及系统
RU2744029C1 (ru) Система и способ формирования обучающего набора для алгоритма машинного обучения
CN103176985A (zh) 一种及时高效的互联网信息爬取方法
RU2733481C2 (ru) Способ и система генерирования признака для ранжирования документа
CN103559258A (zh) 基于云计算的网页排序方法
CN112732995A (zh) 一种畜牧业新闻资讯推荐系统
Jin et al. CT-Rank: A Time-aware Ranking Algorithm for Web Search.
CN101840438B (zh) 面向源文献元关键词的检索系统
US7962468B2 (en) System and method for providing image labeling game using CBIR
Liu et al. Topical Web Crawling for Domain-Specific Resource Discovery Enhanced by Selectively using Link-Context.
Kalmukov et al. Design and development of an automated web crawler used for building image databases
Jin et al. Tise: A temporal search engine for web contents
CN105808761A (zh) 一种基于大数据Solr网页排序优化方法
Mezaour Filtering web documents for a thematic warehouse case study: eDot a food risk data warehouse (extended)
Kharazmi et al. Freshness of Web search engines: Improving performance of Web search engines using data mining techniques
HSU et al. FAQ-master: an ontological multi-agent system for web FAQ services
Aggarwal Information Retrieval and Search Engines
Gupta et al. A novel user trend‐based priority assigner and URL scheduler for dynamic incremental crawling
Ahmedi et al. E-Shop: A vertical search engine for domain of online shopping
Wang et al. The research of web information retrieval based on temporal information
Zhang et al. UCAS at TREC 2012 Microblog Track.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120509

Termination date: 20130508