一种主动发现网络地理信息服务的主题爬虫

  • 沈平 , 1 ,
  • 桂志鹏 , 2, * ,
  • 游兰 1, 3 ,
  • 胡凯 1 ,
  • 吴华意 1
展开
  • 1. 武汉大学测绘遥感信息工程国家重点实验室,武汉 430079
  • 2. 武汉大学遥感信息工程学院,武汉 430079
  • 3. 湖北大学计算机与信息工程学院,武汉 430062
*通讯作者:桂志鹏(1982-),男,博士,讲师,从事空间信息云计算、高性能地学计算及地理信息服务质量的相关研究。E-mail:

作者简介:沈 平(1991-),女,湖北人,硕士生,研究方向为地理信息资源的在线搜索以及地理信息服务。E-mail:

收稿日期: 2014-11-14

  要求修回日期: 2014-12-21

  网络出版日期: 2015-02-10

基金资助

国家自然科学基金面上项目(41371372)

武汉大学遥感信息工程学院探索性研发基金“基于时空计算特征挖掘的空间信息云计算优化方法研究”

A Topic Crawler for Discovering Geospatial Web Services

  • SHEN Ping , 1 ,
  • GUI Zhipeng , 2, * ,
  • YOU Lan 1, 3 ,
  • HU Kai 1 ,
  • WU Huayi 1
Expand
  • 1. State Key Laboratory for Information Engineering in Surveying, Mapping and Remote Sensing, Wuhan University, Wuhan 430079, China
  • 2. School of Remote Sensing and Information Engineering, Wuhan University, Wuhan 430079, China
  • 3. School of Computer Science and Information Engineering, Hubei University, Wuhan 430062, China
*Corresponding author: GUI Zhipeng, E-mail:

Received date: 2014-11-14

  Request revised date: 2014-12-21

  Online published: 2015-02-10

Copyright

《地球信息科学学报》编辑部 所有

摘要

地理信息服务已成为分布式环境下获取地理数据的重要来源,从海量的网络资源中找到地理信息服务,是共享与互操作地理数据的基础。目前,地理信息服务主动搜索主要采用通用搜索引擎的接口或者通用爬虫的抓取方式,但这2种方式存在搜索效率低、搜索结果可用性差等不足。针对这一问题,本文设计了一种搜索地理信息服务的主题爬虫。该算法在最佳优先搜索的基础上进行了改进,综合考虑网页内容的主题相关度和链接文本的主题相关度确定链接优先级,优先爬取与地理信息服务相关的链接,并通过舍弃无关网页中的无关链接,减少无效爬取,进而提高搜索效率。此外,本文采用关键词匹配结合能力文档探测的方式识别地理信息服务,有效筛选出可用的地理信息服务,提高了服务搜索结果的可利用率。最后,本文以OGC WMS为实例,实现爬虫算法的原型系统并进行实验,实验证明该算法有效可行。

本文引用格式

沈平 , 桂志鹏 , 游兰 , 胡凯 , 吴华意 . 一种主动发现网络地理信息服务的主题爬虫[J]. 地球信息科学学报, 2015 , 17(2) : 185 -190 . DOI: 10.3724/SP.J.1047.2015.00185

Abstract

In Internet era, geospatial web services (GWSs) are the primary approaches to share and interoperate geographical data. After more than ten years of development and the widely adoption on specifications, an increased number of geospatial web services have been published and are available for online public access. To obtain those geographical data, it is necessary to find an effective approach to locate and discover GWSs among massive web resources. Currently, the most widely used methods in practical for GWSs discovering are either based on Google Search API or based on generic web crawler. But the aforementioned approaches have some shortages, such as relatively inefficient search performance, irrelevant results, and low precision on GWS identification. To partially address the above issues, this paper developed a topic crawler to harvest GWSs based on the modified Best First Search strategy. The core of the proposed algorithm is that through combining the topic relevance of the link text and the topic relevance of the webpage text synthetically to predict the crawling priority of the unvisited URL. Then, we can utilize the priority thresholds to filter out the irrelevant URLs and narrow the search range at the same time. Moreover, a capabilities document detecting operation is added to GWSs recognition process to improve the search precision. Finally, we use the most widely adopted GWS specification: Web Map Service (WMS), which is proposed by Open Geospatial Consortium (OGC), as a case study. Two groups of experiments were conducted to compare the proposed method and a generic web crawler. The experimental results verified the feasibility of the proposed algorithm.

1 引言

在开放地理空间联盟OGC(Open Geospatial Consortium)和国际标准化组织ISO/TC211的积极推动下,网络地理信息服务规范逐渐成熟和普及[1],越来越多的符合规范的地理信息服务被发布到互联网上。由于地理信息服务以在线方式提供类型丰富、时效性高的地理数据,它已成为公众免费获取地理数据的重要方式。从海量的网络资源中找出地理信息服务,是获取地理数据的关键。传统的地理信息服务主动搜索的方式,主要是借助通用搜索引擎的应用程序接口,如Google Search API、Yahoo Search API等,或者直接利用开源的通用爬虫进行抓取。但上述2种方式对Web资源采用无选择的遍历方式,不能有效利用地理信息服务的特征区分地理信息服务相关网页和其他网页,导致搜索结果中存在大量无关网页。相对于通用爬虫的无选择遍历式搜索,主题爬虫具有特定的搜索目标,只选择符合主题的Web资源进行爬取[2],通过缩短定位到搜索目标的爬行路径,提高搜索效率。因此,根据主题爬虫定制网络地理信息服务爬虫是提高服务搜索效率的可行方案。
近年来,国内外研究者针对地理信息服务的搜索先后提出了一些爬虫算法。文献[3]提出一种能力匹配和本体推理的高精度Web地图服务发现方法;文献[4]提出一种基于累计词频的条件概率模型的多线程爬虫,快速发现互联网上地理空间信息服务资源;文献[5]针对地理信息Web服务设计了一种主题爬虫,该爬虫采用兼顾网页主题相关性和链接结构的搜索策略,综合考虑PageRank算法和链接相关性来预测爬取链接的优先级,但引入PageRank后的搜索策略容易出现“主题漂移”现象[6],且爬取过程中每次加入一个新页面需重新分析整个网络链接的重要性,再计算链接的优先级,需要较长的时间,影响爬行的整体效率。
针对通用爬虫搜索效率的问题,以及现有主题爬虫存在PageRank算法影响爬行效率的不足,本文提出一种基于改进的最佳优先搜索策略[7]的主题爬虫算法。该算法从优先级计算方法和无关网页过滤方式方面改进最佳优先搜索策略,以尽可能少的爬行无关网页找到尽可能多的地理信息服务,从而提高服务搜索的效率,其主要特点:(1)在搜索策略方面,现有的地理信息服务主题爬虫多采用基于链接结构的搜索策略,而本文采用改进的最佳优先搜索策略;(2)在无关网页的过滤方面,现有地理信息服务主题爬虫通过网页分析算法舍弃无关网页,只提取相关网页上链接继续爬行,而本文爬虫对无关网页也提取链接,利用链接与主题的相关度阈值舍弃无关网页上的无关链接;(3)在地理信息服务识别方面,现有主题爬虫采用服务发送方式识别地理信息服务,而本文采用关键词匹配结合能力文档探测的服务识别方式。最后,本文选取地理信息服务标准中应用最为广泛的网络地图服务WMS(Web Map Service),进行原型系统开发和实验测试,以验证本文算法的有效性。

2 爬虫的策略及流程

网络爬虫是一种自动采集网页的程序[8],从初始种子点URL开始,获取网页并提取页面上的链接,将链接加入爬行队列,以重复迭代的方式遍历整个网络区域[9]。主题爬虫是具有特定搜索目标的网络爬虫,通过网页分析算法过滤掉无关网页,只选择主题相关的页面进行访问[10]。地理信息服务通常具有特定的规范和协议,研制地理信息服务主题爬虫的关键,是如何针对地理信息服务的特征制定搜索策略,以优化链接的爬行顺序、过滤无关网页。
在众多主题搜索策略中,最佳优先搜索策略既可以满足围绕地理信息服务特征优化爬行顺序的需求,而且搜索效率较高。因此,本文选择最佳优先搜索策略作为爬行算法的基础。最佳优先搜索采用关键词集合描述主题,根据网页文字内容与主题词的相关度确定待爬行网页的优先级,相关度大的网页上的链接优先级高,每次选择优先级最高的链接进行爬取[11]。但现有的最佳优先搜索算法,没有考虑同一页面上链接间的相关性差异,导致相关链接和无关链接被赋以相同的优先级。本文针对这一问题,提出一种改进的最佳优先搜索策略,即在网页相关分析的基础上进一步考虑计算链接与主题的相关性,按一定的权重综合网页相关度和链接相关度确定链接的优先级,优先爬取与主题相关度更高的链接。
鉴此,本文设计并实现了一种地理信息服务主题爬虫算法,其核心是通过网页相关度计算、链接相关度评估和链接优先级计算,优化爬行顺序;并设定网页相关度和主题相关度的阈值过滤掉无关网页上的无关链接,缩小爬行范围。
爬虫工作流程如图1所示,步骤如下:
Fig. 1 Workflow of the proposed crawler algorithm

图1 本文爬虫算法的工作流程图

(1)构建爬行队列。爬行队列包含所有待爬取的相关链接,爬行队列按优先级分为若干个子队列,新链接入队时按其优先级加入对应的子队列,每次从优先级最高的子队列中出队一个链接进行爬取。初始的爬行队列由一组种子点构成,种子点一般由领域专家给出,也可人为选取权威的提供地理信息服务资源的网站;
(2)获取网页。首先判断爬行队列是否为空,若爬行队列为空,则终止爬行。否则取出优先级最高的链接,发出http请求,获取其响应的网页源码;
(3)计算网页相关度。从网页源码中抽取网页文本,依据预先定义的主题模型,计算网页文本与主题模型的相似度,并按阈值划分网页相关度级别。
(4)过滤链接。从网页源码中提取所有的链接,经过停用网址过滤和链接去重后,进一步判断链接是否为动态链接。若链接包含“?”,即为动态连接,则进行WMS服务识别。否则直接转入链接优先级计算模块;
(5)链接相关度评估。获取事先定义的WMS链接关键词,将链接文本与关键词进行文本匹配得到链接的主题相关度。
(6)计算链接优先级。按一定权重综合链接相关度和网页相关度计算链接的爬行优先级。舍弃优先级为零的链接,将其余链接按其优先级加入爬行队列对应的子队列,出队下一个链接继续爬行。
(7)识别WMS:通过WMS关键匹配初步判断链接是否为WMS,若链接被判断为WMS,则进一步检测能力文档。根据能力文档检测结果将有效WMS保存至WMS数据库,不能获取能力文档或者能力文档异常的链接直接舍弃。

3 爬虫的关键算法

3.1 网页相关度计算

网页与预定的主题相关,页面上的链接也与该主题相关[12]。因此,优先爬取与主题相关的链接,找到主题资源的可能性更大。鉴此,本文选取网页相关度作为决定链接优先级的关键因素之一,网页相关度由基于向量空间模型[13]的方法计算。
在主题爬行开始之前,需预先确定搜索目标,本文的搜索目标由一组描述WMS特征的关键词定义。WMS关键词通过词频统计结合地理信息服务的领域知识的方式选取,具体过程为:(1)在Google搜索“Web Map Service”和“OGC WMS”得到的结果中,选取前500个网页作为训练样本库。从OGC WMS规范的定义、接口和参数人为选取m个特征词汇作为初始关键词;(2)利用TF-IDF算法[14]统计初始关键词在网页中出现的频率,按频率排序,选取前nn<m,实验中n=10)个词汇作为主题关键词;(3)利用向量空间模型将关键词映射成主题模型 T ,向量的每个维度对应一个关键词,其具体值为关键词对应的TF-IDF权重。
网页通常利用HTML结构化表示标题和正文等[15],为了计算网页与主题的相似度,需将网页源码先转化为纯文本。首先,采用HTML DOM(Document Object Model)标准将网页源码转化为标准的HTML树结构,利用XPath文档中定位到<title>和<body>标签,抽取标签中的标题和正文文本。然后,分别统计WMS关键词在网页标题和正文中出现的频率,将它们按一定的比例综合作为WMS关键词的权重。最后,将WMS关键词的权重按向量空间模型组织成向量,即网页特征向量 P ,并计算网页特征向量 P 和主题模型 T 之间的余弦距离如式(1)所示。
r = cos < T , P > = T P T P (1)
式中, r 的取值范围在0-1, r 越接近1,表明网页与主题越相似。
实验发现:网页的相似度总体分布于3个区间,以0.01和0.68为分界线。相似度 r 大于0.68的网页中大多数与主题高度相关,而相似度低于0.01的网页中与主题相关的网页出现的频率几乎为0。因此,本文将相似度 r 按阈值 r a , r b (实验中取为0.68和0.01)划分为高度相关、相关和无关3级,以减少后续爬行队列按链接优先级排序的工作量。网页相关度与相似度的对应关系见式(2)。
pagerelevance = 2 r a r < 1 1 r b r < r a 0 0 r < r b (2)
式中,2代表高度相关,1代表相关,0代表无关。

3.2 链接优先级计算

3.2.1 链接相关度的评估
链接字符串和锚文本能很好地指示该链接所连接到的Web资源的类型[16],对于预测链接是否与主题相关具有很高的可靠性。为此,本文选取链接相关度作为决定链接爬行顺序的另一个因素,链接相关度由链接文本和主题关键词的匹配程度决定。
为了确定评估链接相关性,需定义一组链接关键词作为判断链接与主题的相关程度的依据。链接关键词通过词频选取:人为选取100个来自不同网站的WMS链接作为训练样本,利用程序统计链接中各个词汇的累计频率,并按词频排序,选出前n个(实验中n=10)词汇作为链接的主题关键词,表示为k1,k2,k3kn。考虑到WMS链接中常出现缩写词,如WMS、WMTS、GIS、OWS等,WMS领域典型的缩写词也被选为一组关键词,表示为s1,s2,s3sn。但缩写词的词汇语义弱于WMS关键词,其预测链接是否为WMS链接的可靠性低于WMS关键词,因此被赋以较低的权重。
网页文本中链接通常位于特定的标签中,且链接具有固定的结构,可利用正则解析方式进行提取。本文通过HTML DOM定位到超链接节点,利用正则表达式提取超链接节点的URL字符串和锚文本。网页链接中存在诸如多媒体文档、脚本、社交网站等明显不相关的链接,爬虫算法通过制定停用网址滤除上述链接。为了评估链接的相关度,本文将链接文本与链接关键词进行文本匹配,链接相关度具体对应关系如式(3)所示。
linkrelevance = 2 link ismatc h k 1 , k 2 , ... , k n 1 link ismatc h s 1 , s 2 , ... , s n 0 ot h ers (3)
式中,2代表最高相关度,数值越小相关度越低。
3.2.2 链接优先级的计算
链接优先级是指链接在爬行过程中被访问的先后顺序,确定链接优先级的算法是区别不同主题爬虫算法的关键。本文选取网页文本和链接文本作为预测链接优先级的依据,以确保与WMS越相关的链接优先爬行,提高爬行效率;并通过舍弃优先级为零的链接,即网页相关度和链接相关度均为零的链接,减少无效爬行。链接优先级由链接相关度和网页的相关度按一定权重综合而成,优先级计算公式见式(4)。
式中, λ = 0.7 ,因为链接文本直观地描述了链接所指向的资源类型,它预测链接优先级的可靠性高于父网页,因此,链接相关度被赋以较高的权重。Priority取值范围为0-2,数值越高表示链接优先级越高。

3.3 地理信息服务的识别

根据OGC WMS规范的定义,WMS有3个基本操作:请求能力文档(GetCapabilities)、请求地图(GetMap)和请求地图要素信息(GetFeatureInfo)。本文利用上述操作参数作为关键词,筛选出与相关的动态链接作为候选WMS。为了提高服务搜索结果的可用性,进一步对候选WMS执行能力文档探测,分析能力文档的结构信息,以区分正常WMS服务和异常服务。
地理信息服务识别的具体过程为:(1)检测链接是否存在Service=WMS或Request=Get-Capabilities|GetMap|GetFeatureInfo参数之一;(2)对包含上述关键词的候选WMS链接重构请求能力文档的URL,获取请求的响应结果,并舍弃请求无法响应的链接。正常WMS的响应结果是包含服务的元数据和图层信息的XML文档,而异常WMS返回的能力文档只包含异常信息节点。因此,可通过探测能力文档的关键节点存在与否,区分正常服务和异常服务;(3)比较返回的能力文档和标准能力文档的关键节点:若根节点为WMS_Capabilities或WMT_ MS_Capabilities,并包含<Service>和<Capability>节点,则判定该链接为正常WMS,保存至本地数据库;若根节点为<ServiceExceptionReport>,则判定该链接为异常WMS,直接舍弃。

4 爬虫算法的相关实验

本文爬虫的原型系统使用C#语言在开源网络爬虫NWebCrawler框架上进行扩展,通过开发网页相关度分析、链接优先级预测、WMS识别模块,以及改进爬行队列结构,实现针对地理信息服务搜索的主题爬虫。为了验证本文爬虫算法的有效性,本文将基于广度优先搜索的通用网络爬虫(NWebCrawler)作为参照,进行对比试验。

4.1 实验参数

为了避免搜索规模过大,将爬行层数设为5,线程个数设为5。种子点是爬虫系统运行的入口,种子点的选择很大程度上决定了爬行结果的优劣。如果选择一个与WMS无关的网址作为种子点,爬虫将运行很长一段时间而找不到任何WMS。为了得到更有意义的爬行结果,本文选取确定包含WMS资源的主题页面https://www.lib. ncsu.edu/gis/ogcwms.html和地理信息门户网站首页http://www.usgs.gov/作为爬虫入口开展实验,并分别标记为种子点1和种子点2。

4.2 实验结果与分析

按照上述实验参数设置,分别运行本文爬虫的原型系统和通用爬虫进行对比实验。通用爬虫通常采用精确率来评估爬虫快速找到目标的能力[17],为了衡量主题爬虫的搜索效率,本文对精确率的定义进行修正以评价爬虫搜索WMS的效率,精确率计算公式见式(5)。
精确率 = 找到的 WMS 数量 已下载的所有网页数量 (5)
实验结果如表1所示,两种爬虫的性能对比如图2所示。
Tab. 1 The experimental results of the generic web crawler and the proposed crawler

表1 两种爬虫的搜索WMS的结果对比

种子点 算法 已下载的网页总数 WMS数量 精确率(%)
种子点1 通用爬虫 1 820 888 48.68
本文爬虫 1 373 886 64.53
种子点2 通用爬虫 18 955 153 0.81
本文爬虫 2 201 153 6.95
Fig. 2 Performance comparison between the proposed crawler and the generic web crawler using entry1 and entry2

图2 本文爬虫和通用爬虫的性能对比(种子点1和种子点2)

实验结果由表1可见,在2种不同种子点情况下,本文爬虫的精确率高于通用爬虫。从图2可见,本文算法的性能总体优于通用爬虫,本文爬虫在爬行约10%的网页后定位到WMS资源。而通用爬虫需要爬行约50%的网页才能找到包含WMS的页面,并且本文爬虫能先于通用爬虫找到所有WMS。
出现上述实验结果的原因:首先,本文爬虫通过网页相关度和链接相关度分析,过滤掉了大量无关链接,从而提高了搜索的精确率;其次,本文爬虫按照网页内容和链接文本与WMS的相关度确定链接的爬行顺序,优先爬取与WMS相关的链接,从而较快地找到全部可达的WMS。不同于通用爬虫的全网络遍历方式,本文爬虫舍弃了一部分无关链接,导致位于这些链接的子页面上的WMS流失,所以,本文爬虫搜索到的WMS的数量略低于通用爬虫。
对比图2(a)、(b)可知,以种子点2为入口时,2种爬虫的搜索精确率均低于以种子点1为入口的情况,原因是WMS在2个网站中的分布结构不同。种子点2中的WMS散布在深度较大的页面上,爬虫需要下载更多无关网页才能找到全部WMS,导致搜索精确率下降,与爬虫算法本身无关。

5 结语

针对通用爬虫搜索地理信息服务效率低下、服务识别精确率不高的问题,本文设计并实现了一种搜索地理信息服务的主题爬虫。该算法综合考虑网页相关度和链接相关度计算链接的优先级,优化爬行效率,并通过舍弃无关链接,提高了搜索的精确率。实验表明,本文算法搜索WMS的精确率和性能均优于通用爬虫,从而验证了本文算法的有效性。该算法相对现有地理信息主题爬虫的主要优势为:(1)改进的最佳优先搜索策略,简化了计算链接优先级的复杂度,提高了爬行效率;(2)通过链接相关度分析细化网页的过滤策略,保留无关网页上的相关链接,提高找到WMS的可能性;(3)在WMS识别方法中增加WMS能力文档探测,筛选出可用的WMS,进而提高了服务搜索结果的可用性。今后将增加中文网页作为爬取对象,以扩充地理信息服务的来源。

The authors have declared that no competing interests exist.

[1]
沈盛彧,吴华意,张彤,等.支持主动注册和实时服务质量监测的地理信息目录服务[J].武汉大学学报·信息科学版,2012,37(5):525-528.

[2]
史宝明,贺元香,吴崇正.主题搜索引擎中爬虫搜索策略的研究[J].计算机工程与应用,2014,50(2):116-119.

[3]
陈能成,陈泽强,王伟.一种基于能力匹配和本体推理的高精度Web地图服务发现方法[J].武汉大学学报·信息科学版,2009,34(12):1471-1475.

[4]
Li W W, Yang C W, Yang C J.An active crawler for discovering geospatial Web services and their distribution pattern - A case study of OGC Web Map Service[J]. International Journal of Geographical Information Science, 2010,24(8):1127-1147.

[5]
武昊,廖安平,何超英,等.基于主题相关度的地理信息Web服务爬虫研究[J].地理与地理信息科学,2012,28(2):27-30.

[6]
高琪,张永平. PageRank算法中主题漂移的研究[J].微计算机信息,2010(9):117-119.

[7]
乔建忠.一种基于改进BFS算法的主题搜索技术研究[J].现代图书情报技术,2013,235/236(7/8):28-34.

[8]
戚欣. 基于本体的主题网络爬虫设计[J].武汉理工大学学报,2009,31(3):138-141.

[9]
Heydon A, Najork M.Mercator: A scalable, extensible Web Crawler[J]. World Wide Web, 1999,2(4):219-229.

[10]
李勇,韩亮.主题搜索引擎中网络爬虫的搜索策略研究[J].计算机工程与科学,2008,30(3):4-6.

[11]
刘金红,陆余良.主题网络爬虫研究综述[J]. 计算机应用研究,2007,24(10):26-29.

[12]
蒋宗礼,徐学可,李帅.一种基于超链接引导的主题搜索的主题敏感爬行方法[J].计算机应用,2008,28(4):942-944.

[13]
Pal A, Tomar D S, Shrivastava S C.Effective focused crawling based on content and link structure analysis[J]. International Journal of Computer Science and Information Security, 2009,2(1).

[14]
Salton G, Buckley C.Term weighting approaches in automatic text retrieval[R]. Ithaca: Cornell University, 1987.

[15]
王曙,吉雷静,张雪英,等.面向网页文本的地理要素变化检测[J].地球信息科学学报,2013,15(5):625-633.

[16]
李卫疆,赵铁军,朴星海.一种新的面向主题的爬行算法[J]. 计算机应用研究,2009,26(5):1663-1666.

[17]
Chakrabarti S, van den Berg M, Dom B. Focused crawling: A new approach to topic-specific Web resource discovery[J]. Computer Networks, 1999,31(11-16):1623-1640.

文章导航

/