一种聚焦爬虫的设计方法

文档序号:6382221阅读:294来源:国知局
专利名称:一种聚焦爬虫的设计方法
技术领域
本发明属于网络信息处理技术领域,具体来讲,涉及一种聚焦爬虫的设计方法。
背景技术
随着互联网的迅速发展,互联网已成为大量信息的载体,其中的信息呈现爆炸式的增长,这些海量互联网的信息资源包含着巨大的潜在价值,如何有效,快捷地提取并利用这些信息成为一个巨大的挑战,因而各种网络爬虫技术应运而生,例如传统的通用网络爬虫,主题网络爬虫,增量式网络爬虫与深层网络爬虫等技术。网络爬虫是一种自动WEB网页抓取程序,可以从互联网中爬取(抓取)相关有用的网页资源。
传统网络爬虫从一个或者若干个初始的URL开始,爬取网页源码信息并从当前网页信息中提取新的URL放入队列,如此循环处理URL队列中URL对应的页面,直至满足系统设定的停止条件。通常聚焦爬虫在具体处理URL时,需要一定的网页分析算法,过滤与主题无关的URL链接,保留有用的URL链接并将其放入URL等待队列中,此外,还要根据一定的URL搜索策略从队列中选择下一个要抓取的URL,重复以上过程,直到达到系统的终止条件。聚焦爬虫获取的网页会被系统存储,进行一定的分析,过滤处理,获得与主题或领域相关性强的信息,它的关键技术包括(I)本体信息描述或定义;(2)网页URL搜索策略;
(3)网页分析与过滤算法等。首先聚焦爬虫对本体信息的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念三种,基于目标网页特征的爬虫是针对预定的网页或网站进行抓取,基于目标数据模式的爬虫是针对符合一定模式的网页数据进行抓取,而基于领域概念的爬虫则是建立领域本体或字,并从语义角度去度量不同特征的重要程度。然后聚焦爬虫通常按照一定的搜索策略访问网页中的链接,按照网络的构造模式,搜索策略有广度优先、深度优先、最佳优先三种形式。深度优先搜索对网页的超链接遍历直到不能深入为止,广度优先搜索按层抓取网页中的超链接,最佳优先搜索通过一定的页面分析算法来获取目标网页的超链接。最后聚焦爬虫需要对抓取的页面进行分析过滤,去掉相关度低或者网页粒度小的页面,此页面分析算法归纳为三种基于网络拓扑结构、基于页面内容、基于用户访问行为。基于网络拓扑结构的思想,主要对已知的网页,对与其有直接或间接链接关系的对象做出评价;基于网页内容的分析算法利用网页内容特征对其进行网页评价,如对网页中文本和数据分析,计算出和主题的相关度;基于用户的访问模式可以反映资源的重要性和与主题相关性,能随时反映网络链接的变化。目前针对聚焦爬虫提出了一些不同的技术方案,比较著名的有Heritrix与Nutch等。前者由互联网档案馆和北欧国家图书馆联合开发的,采用了模块化的设计,它由一些核心类与可插件模块构成,核心类可以配置,满足实际配置需求,插件模块可任由第三方模块取代,可以不断的被其感兴趣的第三方改进,已成为一个比较成熟的开源爬虫,并被广泛使用。后者是一个开放源代码的WEB搜索引擎,提供了 Web聚焦爬虫模块(crawler),它首先根据WebDB生成一个待爬取网页的URL集合(list),接着下载线程根据I i st中的URL爬取网页,然后再根据爬取回来的网页WebDB进行更新,生成新的URL集合,里面包含未爬取或新发现的URL,如此操作,合并各阶段list中URL的索引,生成最终待爬取网页的索引。它的实现是通过一系列子操作的实现来完成的,针对这些子操作都提供了相应的子命令行,单独进行调试。通过以上相关聚焦爬虫的分析发现,目前已经存在的网络爬虫仍有许多值得研究的领域,例如传统的聚焦爬虫往往针对预先指定的网站或网页进行爬取,而如何合理的利用海量的互联网信息、根据领域信息快速丢弃与领域相关性弱的网页、有效定位所采集的信息资源等问题等方面研究较少。

发明内容
本发明的目的在于克服现有技术的不足,提供一种更为快速、有效的爬取网络资源的聚焦爬虫的设计方法。为实现上述发明目的,本发明聚焦爬虫的设计方法,其特征在于,包括以下步骤(I)、配置领域本体的描述信息并作为聚焦爬虫的模板,这些描述信息包括搜索关键词、筛选关键词、爬取关键词;其中,搜索关键词是指提交给搜索引擎进行资源检索的关键词,筛选关键词是指根据搜索引擎的反馈结果进行爬取的资源中包含的需要进行进一步筛选的超链接(URL)所对应的关键词,爬取关键词是指最终要爬取的有效信息所对应的关键词;(2)、选择爬虫模板的搜索关键词提交给搜索引擎进行资源检索,获取本领域网页URL信息,形成初始种子URL序列N ;(3)、从初始种子URL序列N中依次取出种子URL交给的爬虫处理线程3. I )、在爬虫处理线程进行分析处理种子URL时,根据取出的种子URL在初始种子URL序列N之前种子URL的有效性即是否提取到有用信息,以一定的爬取概率P选取种子URL进行资源爬取,实现对种子URL的有效过滤,提高URL的处理效率;3. 2)、依据爬虫模板的筛选关键词,对步骤3. I)选取的种子URL进行深度遍历搜索,并获取包含筛选关键词的URL超链接队列;3. 3)、依据爬虫模板的爬取关键词对步骤3. 2)获取的URL超链接队列中的URL依次进行页面源码分析,对页面中的标签进行权重分析,定位出有用信息在页面源码中的位置,提取出有用的信息,并存入数据库中。本发明的发明目的是这样实现的本发明聚焦爬虫的设计方法,通过搜索引擎检索到与领域相关的本领域网页URL资源,而非针对少数特定的网站,丰富了 URL资源的数量;针对URL资源与领域的相关性强弱,采用一定的概率选取种子URL进行资源爬取,即以一定的概率不处理与领域相关性弱的URL资源,提高了 URL资源的处理效率,使爬取资源更为快速;最后利用网页标签的权重分析有针对性的获取待爬取的信息,提高信息的有效性。


图I是本发明聚焦爬虫的设计方法一种实施方式流程图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。图I是本发明聚焦爬虫的设计方法一种实施方式流程图。在本实施例中,如图I所示,本发明聚焦爬虫设计方法包括以下步骤ST1、配置领域本体的描述信息并作为聚焦爬虫的模板,这些描述信息包括搜索关键词、筛选关键词、爬取关键词,分别作为爬虫模板的三级信息。在本实施中,采用百度作为搜索引擎,设置爬虫模板中的搜索关键词由本体名“软件公司”和扩展域“四川”两部分组成,筛选关键词包含一层即“联系我们(联系)”,爬取关键词包括“名称”、“地址(address ) ”、“联系方式(电话、手机、总机、热线)”、“邮箱(E-mai I) ”、“网址(公司主页)”、“传真(fax、FAX)”、“邮编(邮政编码)”、“QQ”,其中上面括号中的内容是关键词的同义词。配置好爬虫模板后,将会为这些关键词训练成正则表达式,为后面信息处理做准备,如“邮箱”对应的正则表达式是〃邮.10,50}箱〃。ST2、选择爬虫模板的搜索关键词提交给搜索引擎进行资源检索,获取本领域网页URL信息,形成初始种子URL序列N。页面下载是建立在HTTP请求和回应的基础上的,Java作为时下流行的开发语言,可以引用HttpParser、HttpClient等提供的强大而灵活易用的开源类库。为使抓取的网页、网络访问效率符合要求,爬虫还需要进一步做如下处理。首先,在HTTP请求中添加头信息,将爬虫伪装成浏览器向服务器发出请求,通常服务器根据客户端浏览器的USer_Agent来判断用户使用的是什么浏览器并返回请求。可以在爬虫的RequestProperty设置如下HttpURLConnection. setRequestProperty ("User-Agent", "Mozilla/5. O (Windows;U;ffindows NT 6. I; zh_CN; rv: I. 9. 2. 16)Gecko/20110319 Firefox/3. 6. 16"),这样爬虫就伪装成Windows下的Firefox浏览器。其次,网页编码一般可分为UTF-8和GBK两种格式,系统采用GBK为默认编码格式,为避免出现乱码和方便后续的信息处理工作,在信息爬取阶段对不同的页面进行统一编码,将UTF-8编码格式的页面转为GBK编码。对页面编码格式的判断时,通过包括两种方式第一种是根据HTTP返回的头信息即通过HttpURLConnection. getHeaderFields O读取编码信息,若此时服务器返回的头信息中不包含编码信息,则采用第二种方式,即读取页面源码的前 100 行,在 head 区域内如〈meta http-equiv=content_type content=〃text/html; charset=GBK〃>中得到编码格式。在本实施中,分析搜索引擎的搜索URL形式,一般形式为搜索引擎域名+搜索关键词+搜索结果起始条数,如百度搜索“四川软件公司”的URL形式为 http://www.baidu. com/s wd=%E5%9B%9B%E5%B7%9D%20%E8%BD%AF%E4%BB%B6%E5%85%AC%E5%8F%B8&pn=0,其中wd=后面为搜索关键词的GB2312编码,&pn=表示当前结果URL为百度搜索结果的第O条开始。可以通过提交搜索关键词、设置搜索结果起始条数得到搜索结果页面URL,下载页面源码并通过正则表达式得到页面提供的搜索结果URL,百度一般可以访问76页的搜索页面,每个页面包含10个URL。搜索引擎采用搜索关键词“四川软件公司”进行资源检索,将搜索结果放入URL序列N,经过去重,在数据库中保存,得到初始种子URL序列N,初始种子URL序列N和该领域有一定的有序相关性。初始种子URL序列N中部分搜索结果如表I所示。
序列号URL
1http://www.hysware.com/
2http://www. klsoft. net/
3http://www.qssoft.cn/
4http://www.yinhai.com/
5http://www.cduftc.cn/
6http://www.hreesoft.com/
7http://www.westarsoft.com/
8www. docin. com/p-393329390. html
9http://www.teamsfy.com/
10http://www. it611. com/表IST3、从初始种子URL序列N中依次取出种子URL交给的爬虫处理线程。在本实施例中,依次取出是首先判断初始种子URL序列N是否为空,不为空则将排在初始种子URL序列N第一的种子URL取出,如果初始种子URL序列N为空则结束爬取。3. I)、在爬虫处理线程进行分析处理种子URL时,根据取出的种子URL在初始种子URL序列N之前种子URL的有效性即是否提取到有用信息,以一定的概率P选取种子URL进行资源爬取,实现对URL的有效过滤,提高URL的处理效率。在本实施例中,根据搜索引擎检索出的初始种子URL序列N的特性序列N前面的URL页面内容的领域相关性强,后面的URL页面内容的领域相关性弱,形成了一种有效的URL过滤策略,则爬取概率P的计算公式如下P=I-(s+f)/(2n)其中,η是初始种子URL序列N包含初始种子URL的数目,s为取出的种子URL在初始种子URL序列N中的位置序列号,f为取出的种子URL在初始种子URL序列N之前的种子URL中未提取到有用信息的种子URL的数目。 在本实施中,采用以一定概率I-P丢弃种子URL的策略对URL进行过滤,在本实施例中,当初始种子URL序列N中数量为种子URL的数目为表I中的数量时,对表I中的种子URL进行分析,得到相应的爬取概率P,如表2所示。
位置序列号I种子URLI爬取概率
1http://www.hysware.com/95%
2http://www.klsoft.net/90%
3http://www.qssoft.cn/85%
4http://www.yinhai.com/80%
5http://www.cduftc.cn/75%
6http://www.hreesoft.com/70%
7http://www.westarsoft.com/65%
8http://www. docin. com/p-393329390. html60%
9http://www.teamsfy.com/50%
10http://www. it611. com/45%表2其中,位置序列I到7种子URL对应的页面均能爬取到有用信息,此时当前未提取到有用信息的URL的数目f为0,序列8对应的URL未提取到有用信息,导致f加1,依据爬取概率公式可以得到表2中的爬取概率P。当具体处理某个种子URL时,以一定爬取概率P对此种子URL进行爬取,若爬取,则对其进行爬取分析。在本实施中,选用“四川软件公司”作为搜索关键词,通过对搜索引擎获取的初始种子URL序列N进行分析,可得相应URL过滤策略的准确性如下表3所示。
总数B提取出有效 信息的数0 爬取_种子URL9218 6
丢弃的种子URL464248表3由表3可以发现,丢弃的种子URL中包含的有效信息的数量较少,对于丢弃的种子URL在下次爬取周期中予以补充更新。
3. 2)、依据爬虫模板的筛选关键词,对步骤3. I)选取的种子URL进行深度遍历搜索,并获取包含筛选关键词的URL超链接队列;在由当前URL获取页面子URL时,存在URL补齐的现象。通过下载页面源码获取包含筛选关键词的超链接,大多是相对路径,因而需要对其扩展为绝对路径。如表I中序列号I对应的URL http://www. hysware. com/,它的种子URL页面源码中“联系我们”对应的超链接是相对路径“lx. asp”,可以采用URL. getHost ()方法得到主机名为“www. hysware. com”,经过扩展可以得到子URL是http://www. hysware. com/lx. asp,再对此子 URL 进行下一步处理。由于描述信息中的筛选关键词采用多层配置方式,首先分析种子URL源码中是否包含第一层筛选关键词,若包含,获取相应的URL,形成筛选队列;若有下一层筛选关键词,则对筛选队列中的各URL页面获取此层筛选关键词对应的URL超链接,这些新的URL超链接覆盖旧的URL,构成新的URL筛选队列;重复上过程,直到不再有下一层筛选关键词,从而得到最终进行信息提取的URL超链接队列。同时,在每一层筛选关键词对URL页面进行分析时,若页面包含“下一页”,则判断当前页面是否包含此层筛选关键词,若包含,则将当前URL加入筛选队列,并继续获取“下一页”对应的URL超链接进行分析;若不包含,则不将此URL加入筛选队列,也不再获取“下一页”对应的URL超链接。另外,在每次获取筛选队列时,采用去重存储,避免URL重新指回旧链接,造成无限死循环。在本实施中,读取第一层筛选关键词是“联系我们(联系)”,表I中序列号7中的URL页面包含“联系方式”和“下一页”,其中“联系方式”对应的超链接可以通过筛选关键词“联系”匹配到。首先得到当前页“联系方式”对应的超链接放入筛选队列中,再获取“下一页” URL的超链接,并对其页面获取“联系方式”对应的超链接放入筛选队列,循环执行此过程,直到不再有“下一页”的页面存在为止。判断是否有下一层筛选关键词,若有,则对上一 层得到的筛选队列执行上述的筛选过程,若无,则终止筛选。重复上述过程,直到不存在下一层筛选关键词,最后一层筛选关键词得到的筛选队列即为最终进行信息提取的URL超链接队列。在本实施中,依据此方法可以得到筛选后的子URL如下表,其中,种子URL7号的子URL链接仅展示3%的数据,如表4所示。
权利要求
1.一种聚焦爬虫的设计方法,其特征在于,包括以下步骤 (1)、配置领域本体的描述信息并作为聚焦爬虫的模板,这些描述信息包括搜索关键词、筛选关键词、爬取关键词;其中,搜索关键词是指提交给搜索引擎进行资源检索的关键词,筛选关键词是指根据搜索引擎的反馈结果进行爬取的资源中包含的需要进行进一步筛选的超链接(URL)所对应的关键词,爬取关键词是指最终要爬取的有效信息所对应的关键词; (2)、选择爬虫模板的搜索关键词提交给搜索引擎进行资源检索,获取本领域网页URL信息,形成初始种子URL序列N ; (3)、从初始种子URL序列N中依次取出种子URL交给的爬虫处理线程 3. I)、在爬虫处理线程进行分析处理种子URL时,根据取出的种子URL在初始种子URL序列N之前种子URL的有效性即是否提取到有用信息,以一定的爬取概率P选取种子URL进行资源爬取,实现对种子URL的有效过滤,提高URL的处理效率; 3. 2)、依据爬虫模板的筛选关键词,对步骤3. I)选取的种子URL进行深度遍历搜索,并获取包含筛选关键词的URL超链接队列; 3. 3)、依据爬虫模板的爬取关键词对步骤3. 2)获取的URL超链接队列中的URL依次进行页面源码分析,对页面中的标签进行权重分析,定位出有用信息在页面源码中的位置,提取出有用的信息,并存入数据库中。
2.根据权利要求I所述的聚焦爬虫的设计方法,其特征在于,所述爬取概率P为P=I-(s+f)/(2n) 其中,η是初始种子URL序列N包含初始种子URL的数目,s为取出的种子URL在初始种子URL序列N中的位置序列号,f为取出的种子URL在初始种子URL序列N之前的种子URL中未提取到有用信息的种子URL的数目。
3.根据权利要求I所述的聚焦爬虫的设计方法,其特征在于,还包括以下步骤 在间隔一段时间后,重新选择爬虫模板的搜索关键词提交给搜索引擎进行资源检索,获得新的初始种子URL序列N,然后,重新进行步骤3. I )、步骤3. 2),得到新的URL超链接队列,然后与上一时间窗口获得的URL超链接队列进行比较,对于新的URL,则按照步骤3. 3)提取出有用的信息,并存入数据库中;对于已有的URL,则获取对应页面的信息并求其MD5值,并与上次时间窗口爬取的页面信息生成的MD5值进行比较,若不同,则进行步骤3. 3)重新爬取,并将新爬取到的信息存入数据库中;对于没有的URL,则将数据库中对应的信息删除。
全文摘要
本发明公开了一种聚焦爬虫的设计方法,通过搜索引擎检索到与领域相关的本领域网页URL资源,而非针对少数特定的网站,丰富了URL资源的数量;针对URL资源与领域的相关性强弱,采用一定的概率选取种子URL进行资源爬取,即以一定的概率不处理与领域相关性弱的URL资源,提高了URL资源的处理效率,使爬取资源更为快速;最后利用网页标签的权重分析有针对性的获取待爬取的信息,提高信息的有效性。
文档编号G06F17/30GK102930059SQ20121048474
公开日2013年2月13日 申请日期2012年11月26日 优先权日2012年11月26日
发明者陈端兵, 高辉, 傅彦, 张博 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1