侯 東 陽(yáng),武 昊,王 軍 鋒,王 明 山
(1.中國(guó)礦業(yè)大學(xué)環(huán)境與測(cè)繪學(xué)院,江蘇 徐州221116;2.國(guó)家基礎(chǔ)地理信息中心,北京 100830;3.中科九度(北京)空間信息技術(shù)有限責(zé)任公司,北京 100190; 4.中國(guó)移動(dòng)通信集團(tuán)湖北有限公司襄陽(yáng)分公司,湖北 襄陽(yáng) 441003)
?
基于深層網(wǎng)絡(luò)爬蟲(chóng)的Web地圖服務(wù)發(fā)現(xiàn)方法
侯 東 陽(yáng)1,2,武 昊2,王 軍 鋒3,王 明 山4
(1.中國(guó)礦業(yè)大學(xué)環(huán)境與測(cè)繪學(xué)院,江蘇 徐州221116;2.國(guó)家基礎(chǔ)地理信息中心,北京 100830;3.中科九度(北京)空間信息技術(shù)有限責(zé)任公司,北京 100190; 4.中國(guó)移動(dòng)通信集團(tuán)湖北有限公司襄陽(yáng)分公司,湖北 襄陽(yáng) 441003)
傳統(tǒng)Web地圖服務(wù)(Web Map Service,WMS)發(fā)現(xiàn)方法只能檢索表層網(wǎng)絡(luò)中的地圖服務(wù),無(wú)法發(fā)現(xiàn)深層網(wǎng)絡(luò)中日益增加的地圖服務(wù)。針對(duì)這一現(xiàn)象,該文提出了一種利用深層網(wǎng)絡(luò)爬蟲(chóng)的WMS發(fā)現(xiàn)方法。首先,從WMS的應(yīng)用角度出發(fā),總結(jié)了兩條WMS應(yīng)用規(guī)則,并利用正則表達(dá)式對(duì)它們進(jìn)行了形式化描述;然后,針對(duì)每條應(yīng)用規(guī)則制定了相應(yīng)的使用流程;最后以傳統(tǒng)地圖服務(wù)爬蟲(chóng)為基礎(chǔ),通過(guò)新增腳本解析引擎和應(yīng)用規(guī)則構(gòu)建了深層網(wǎng)絡(luò)爬蟲(chóng)。實(shí)驗(yàn)表明,該方法可以同時(shí)發(fā)現(xiàn)位于表層網(wǎng)絡(luò)和深層網(wǎng)絡(luò)中的Web地圖服務(wù)。
Web地圖服務(wù);服務(wù)發(fā)現(xiàn);爬蟲(chóng);深層網(wǎng)絡(luò)
Web地圖服務(wù)(Web Map Service,WMS)是OGC(Open GIS Constrium) 提出的空間數(shù)據(jù)共享和互操作規(guī)范[1,2]。隨著OGC標(biāo)準(zhǔn)的普及和網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的WMS在Web中發(fā)布[3]。為有效發(fā)現(xiàn)并利用分布在網(wǎng)絡(luò)上的地圖服務(wù),借助于信息檢索技術(shù)主動(dòng)發(fā)現(xiàn)WMS成為當(dāng)前的一個(gè)研究熱點(diǎn)[4]。
目前,Web地圖服務(wù)主動(dòng)發(fā)現(xiàn)主要依靠通用搜索引擎和傳統(tǒng)網(wǎng)絡(luò)爬蟲(chóng)兩類方法。其中,基于通用搜索引擎的WMS發(fā)現(xiàn)方法主要是借助于搜索引擎提供的API(Application Programming Interface),搜索包含WMS能力描述文件特征的網(wǎng)頁(yè),然后利用規(guī)則匹配探測(cè)出WMS[2,5]。例如,Lopez-Pellicer等證明了Google、Bing和Yahoo具有發(fā)現(xiàn)Web地圖服務(wù)的能力[2]。但是通用搜索引擎API對(duì)搜索次數(shù)和搜索結(jié)果數(shù)有一定的限制,這會(huì)影響該類方法發(fā)現(xiàn)WMS的能力。為了更靈活地發(fā)現(xiàn)WMS,提出了基于傳統(tǒng)網(wǎng)絡(luò)爬蟲(chóng)的WMS發(fā)現(xiàn)方法。該類方法是以用戶給定的初始URL(Uniform Resource Location)為入口,利用傳統(tǒng)網(wǎng)絡(luò)爬蟲(chóng)技術(shù)在網(wǎng)絡(luò)中自動(dòng)搜索下載潛在的WMS網(wǎng)頁(yè),然后利用規(guī)則匹配探測(cè)出WMS服務(wù)[1,3,6,7]。例如,陳能成等[1]和Sample 等[6]分別基于改進(jìn)的開(kāi)源網(wǎng)絡(luò)爬蟲(chóng)Nutch和Heritrix主動(dòng)發(fā)現(xiàn)網(wǎng)絡(luò)中的WMS。這類方法能夠高效地發(fā)現(xiàn)WMS及其他OGC服務(wù),卻不能發(fā)現(xiàn)隱藏在深層網(wǎng)絡(luò)中的WMS[5]。其中,深層網(wǎng)絡(luò)是指網(wǎng)絡(luò)中難以直接被傳統(tǒng)搜索引擎/網(wǎng)絡(luò)爬蟲(chóng)采集到的資源集合,包括隱藏在JavaScript腳本語(yǔ)言中的資源或通過(guò)填寫(xiě)并提交查詢表單才能訪問(wèn)的在線數(shù)據(jù)庫(kù)資源等[8,9]。因?yàn)橥ㄓ盟阉饕婧蛡鹘y(tǒng)網(wǎng)絡(luò)爬蟲(chóng)在網(wǎng)頁(yè)搜索和解析過(guò)程中缺少處理JavaScript腳本語(yǔ)言和提交表單的能力[8],所以,它們都不能有效發(fā)現(xiàn)隱藏在深層網(wǎng)絡(luò)中的WMS。
因此,針對(duì)以上問(wèn)題,本文提出了一種利用深層網(wǎng)絡(luò)爬蟲(chóng)的Web地圖服務(wù)發(fā)現(xiàn)方法。由于OGC的其他服務(wù)(如Web要素服務(wù)、Web覆蓋服務(wù)等)與WMS在協(xié)議和接口上有很大的相似性[4,7],所以該方法可以平穩(wěn)過(guò)渡到其他OGC服務(wù)的發(fā)現(xiàn)。
傳統(tǒng)網(wǎng)絡(luò)爬蟲(chóng)是從一些初始URL出發(fā),通過(guò)HTTP(Hyper Text Transfer Protocol)等協(xié)議請(qǐng)求并獲取網(wǎng)頁(yè)資源,然后利用網(wǎng)頁(yè)解析引擎分析網(wǎng)頁(yè)內(nèi)容并提取鏈接,最終以循環(huán)迭代的方式采集整個(gè)表層網(wǎng)絡(luò)資源[4,10]。而深層爬蟲(chóng)則需要利用JavaScript腳本引擎或表單提交器獲取分析JavaScript腳本內(nèi)容或表單內(nèi)容等動(dòng)態(tài)網(wǎng)頁(yè),以此達(dá)到循環(huán)采集深層網(wǎng)絡(luò)資源的目的[9]。在大多數(shù)網(wǎng)絡(luò)地理信息系統(tǒng)中,WMS是以JavaScript腳本的形式嵌入其中的[11],如全球30 m地表覆蓋瀏覽網(wǎng)站(http://www.globallandcover.com/)、 美國(guó)國(guó)家農(nóng)業(yè)統(tǒng)計(jì)局耕地服務(wù)網(wǎng)站(http://nassgeodata.gmu.edu/CropScape/) 等。 為了有效獲取這些隱藏在JavaScript腳本語(yǔ)言中的WMS服務(wù),本文針對(duì)WMS服務(wù)應(yīng)用形式的特征,以傳統(tǒng)網(wǎng)絡(luò)爬蟲(chóng)為基礎(chǔ),構(gòu)造了深層網(wǎng)絡(luò)爬蟲(chóng),其框架如圖1所示。
圖1 基于深層網(wǎng)絡(luò)爬蟲(chóng)的WMS發(fā)現(xiàn)框架
Fig.1 Framework of the proposed approach
基于深層網(wǎng)絡(luò)爬蟲(chóng)的WMS發(fā)現(xiàn)方法由9個(gè)模塊組成:1)初始URL是整個(gè)爬蟲(chóng)的起始點(diǎn),是爬蟲(chóng)與Web之間的連接點(diǎn),可以由人工或借助于通用搜索引擎設(shè)定。2)頁(yè)面獲取模塊負(fù)責(zé)下載初始URL或URL優(yōu)先級(jí)隊(duì)列中URL所對(duì)應(yīng)的網(wǎng)頁(yè)源碼。獲得網(wǎng)頁(yè)源碼后,該方法會(huì)根據(jù)網(wǎng)頁(yè)源碼是否包含OpenLayers.js(也可能引用OpenLayers其他形式的文件,如OpenLayers.debug.js等,本文僅以O(shè)penLayers.js為代表,在實(shí)際系統(tǒng)開(kāi)發(fā)時(shí),會(huì)對(duì)所有形式進(jìn)行判斷)文件來(lái)判斷出哪些網(wǎng)頁(yè)可能會(huì)在腳本中引用WMS。本文將腳本中引用WMS的網(wǎng)頁(yè)稱作地圖網(wǎng)頁(yè),其他網(wǎng)頁(yè)稱作非地圖網(wǎng)頁(yè)。3)頁(yè)面解析模塊主要采用HTML頁(yè)面解析引擎和正文提取規(guī)則獲得非地圖網(wǎng)頁(yè)的正文內(nèi)容。4)主題相關(guān)度計(jì)算模塊負(fù)責(zé)判斷非地圖網(wǎng)頁(yè)是否與給定的WMS主題詞相關(guān)。本文主要采用傳統(tǒng)的向量空間模型和余弦公式計(jì)算主題相關(guān)度。如果相關(guān)度值小于某一閾值,則丟棄該網(wǎng)頁(yè)及該網(wǎng)頁(yè)中的其他鏈接。5)如果相關(guān)度值大于某一閾值,則執(zhí)行鏈接提取模塊。該模塊主要采用HTML頁(yè)面解析引擎和鏈接提取規(guī)則,負(fù)責(zé)提取非地圖網(wǎng)頁(yè)包含的鏈接地址,并將其存儲(chǔ)在URL優(yōu)先級(jí)隊(duì)列中。其中鏈接的優(yōu)先級(jí)由其父網(wǎng)頁(yè)的相關(guān)度值和錨文本的相關(guān)度值確定。6)WMS探測(cè)1模塊負(fù)責(zé)探測(cè)非地圖網(wǎng)頁(yè)中的潛在WMS鏈接,即一些動(dòng)態(tài)網(wǎng)頁(yè)或那些非.html、.edu及.com等結(jié)尾的網(wǎng)頁(yè)。7)腳本解析模塊負(fù)責(zé)解析潛在地圖網(wǎng)頁(yè)中的JavaScript腳本,它主要借助于腳本解析引擎分析獲取地圖網(wǎng)頁(yè)的腳本內(nèi)容。為保證效率,腳本解析引擎只會(huì)分析那些可能引用WMS的JavaScript腳本,這一優(yōu)化過(guò)程會(huì)在事先總結(jié)的規(guī)則下進(jìn)行。8)WMS探測(cè)2模塊主要負(fù)責(zé)從JavaScript腳本內(nèi)容中識(shí)別潛在的WMS鏈接,它主要是在WMS應(yīng)用規(guī)則的基礎(chǔ)上,利用規(guī)則匹配實(shí)現(xiàn)的。9)WMS驗(yàn)證模塊負(fù)責(zé)檢驗(yàn)潛在WMS鏈接是否可用。驗(yàn)證時(shí),該模塊首先發(fā)送GetCapabilities請(qǐng)求,然后采用XML解析器解析返回的消息,如果服務(wù)可用則將其保存在WMS數(shù)據(jù)庫(kù),否則拋棄該鏈接。循環(huán)迭代以上過(guò)程,直到主題URL隊(duì)列為空或滿足一定的結(jié)束條件。
基于深層網(wǎng)絡(luò)爬蟲(chóng)的WMS服務(wù)發(fā)現(xiàn)方法與基于傳統(tǒng)網(wǎng)絡(luò)爬蟲(chóng)方法的不同之處在于:從WMS服務(wù)應(yīng)用的角度,區(qū)別對(duì)待了以JavaScript腳本形式應(yīng)用WMS服務(wù)的網(wǎng)頁(yè),增加了腳本解析引擎、應(yīng)用規(guī)則及不同的WMS探測(cè)方法,以便發(fā)現(xiàn)隱藏在JavaScript腳本語(yǔ)言中的WMS服務(wù)。
2.1 WMS的應(yīng)用特征
本文通過(guò)文獻(xiàn)分析發(fā)現(xiàn)研究者和網(wǎng)絡(luò)地理信息系統(tǒng)開(kāi)發(fā)者大多選用開(kāi)源的JavaScript框架OpenLayers調(diào)用WMS。這主要是因?yàn)镺penLayers按照OGC的規(guī)范封裝了訪問(wèn)WMS及其他OGC服務(wù)的接口,這使得調(diào)用WMS等服務(wù)變得簡(jiǎn)單快捷。文獻(xiàn)分析以谷歌學(xué)術(shù)數(shù)據(jù)庫(kù)為主,查詢關(guān)鍵詞WMS、OpenLayers和system/prototype同時(shí)出現(xiàn)的文獻(xiàn),即查詢語(yǔ)句為“WMS OpenLayers prototype OR system”。由于WMS標(biāo)準(zhǔn)是2000年提出,故將查詢時(shí)段限制為2000-2015年。最終共檢索出約1 500篇文獻(xiàn)(不包含專利和引用),這說(shuō)明約1 500篇文獻(xiàn)討論或使用了OpenLayers調(diào)用WMS服務(wù)。
在文獻(xiàn)分析以后,本文又對(duì)實(shí)際系統(tǒng)進(jìn)行了調(diào)查研究。主要是從不同網(wǎng)絡(luò)地理信息系統(tǒng)的網(wǎng)頁(yè)源碼中統(tǒng)計(jì)分析WMS數(shù)量。本文從上述約1 500篇文獻(xiàn)中,選擇了7個(gè)涵蓋地表覆蓋、生態(tài)環(huán)境、農(nóng)業(yè)及空間數(shù)據(jù)分析等領(lǐng)域的網(wǎng)絡(luò)地理信息系統(tǒng)為研究對(duì)象(表1)。通過(guò)分析發(fā)現(xiàn),這7個(gè)系統(tǒng)共調(diào)用了37個(gè)不同的WMS,平均每個(gè)系統(tǒng)調(diào)用5.3個(gè)。假如上述1 500篇文獻(xiàn)中涉及的系統(tǒng)有500個(gè)是已經(jīng)正式運(yùn)行的,那么按照上述平均值計(jì)算,就會(huì)有2 650個(gè)WMS被OpenLayers調(diào)用,即至少有2 650個(gè)WMS服務(wù)會(huì)隱藏在深層網(wǎng)絡(luò)中,這一數(shù)據(jù)與現(xiàn)有方法發(fā)現(xiàn)的表層網(wǎng)絡(luò)中的WMS數(shù)量相當(dāng)[7]。因此,從WMS被OpenLayers應(yīng)用的角度出發(fā),研究基于深層網(wǎng)絡(luò)爬蟲(chóng)的WMS發(fā)現(xiàn)方法是有實(shí)際意義的。
表1 調(diào)研的網(wǎng)絡(luò)地理信息系統(tǒng)
Table 1 The list of web geographic systems
網(wǎng)站名稱網(wǎng)址CropScapehttp://nassgeodata.gmu.edu/CropScape/GLC30informationservicehttp://www.globallandcover.com/eHabitatWPShttp://ehabitat?wps.jrc.ec.europa.eu/ehabitat/GeoNetworkhttp://www fao org/geonetwork/srv/en/main.homeNIWAOceanSurveyhttp://www os2020 org nz/project?map?sam/Visorxeográficohttps://sitegal xunta es/sitegal/ev/GeographicalViewerZOOProjecthttp://www zoo?project org/site/ZooWebSite/Demo/SpatialTools#ZOOspatialtoolsdemo
目前,OpenLayers包括OpenLayers2.x和OpenLayers3.x兩類版本。 這兩類版本的命名空間和函數(shù)名稱完全不同,但它們調(diào)用WMS的方法類似。本文只描述應(yīng)用較廣泛的OpenLayers2.x版本,但本文的方法完全可以平穩(wěn)過(guò)渡到OpenLayers3.x版本。OpenLayers2.x版本中一共有3個(gè)調(diào)用WMS的函數(shù),分別是“OpenLayers.Layer.WMS”、“OpenLayers.Layer.WMS.Untiled”和“OpenLayers.Layer.WMS.Post”。 “OpenLayers.Layer.WMS”函數(shù)的調(diào)用形式如圖2所示。其中,參數(shù)“WMS URL”代表WMS服務(wù)的鏈接地址,即本文需要發(fā)現(xiàn)的對(duì)象。其他2個(gè)函數(shù)的調(diào)用形式與“OpenLayers.Layer.WMS”函數(shù)類似。
圖2 OpenLayers調(diào)用WMS的形式
Fig.2 The form of WMS called by OpenLayers
2.2 WMS應(yīng)用規(guī)則及形式化
結(jié)合2.1節(jié)中WMS在OpenLayers中的應(yīng)用特征和實(shí)際應(yīng)用情況,本文總結(jié)了兩條WMS應(yīng)用規(guī)則,并利用正則表達(dá)式對(duì)WMS應(yīng)用規(guī)則進(jìn)行了形式化描述。針對(duì)每條應(yīng)用規(guī)則制定了相應(yīng)的使用流程,具體如下:
規(guī)則I表示直接采用OpenLayers原有的函數(shù)調(diào)用WMS,其形式化如圖3所示。在實(shí)際應(yīng)用中,WMS的調(diào)用函數(shù)也會(huì)嵌套在其他函數(shù)中,并且參數(shù)“WMS URL”也常常會(huì)用變量替代,因此簡(jiǎn)單的規(guī)則匹配不能獲取全部的WMS的鏈接地址,所以本文結(jié)合規(guī)則匹配和JavaScript腳本解析引擎探測(cè)腳本中的WMS。首先,利用規(guī)則I識(shí)別出調(diào)用WMS的JavaScript腳本片段。然后根據(jù)調(diào)用形式識(shí)別出參數(shù)“WMS URL”,如果參數(shù)“WMS URL”是URL鏈接,則將其作為潛在的WMS鏈接;如果參數(shù)“WMS URL”是腳本變量,則動(dòng)態(tài)構(gòu)造一個(gè)返回 “WMS URL”腳本變量的JavaScript函數(shù),并將其提交到JavaScript腳本解析引擎獲取潛在的WMS務(wù)鏈接,其中該動(dòng)態(tài)函數(shù)由識(shí)別出的WMS調(diào)用函數(shù)及其父函數(shù)組成。
圖3 WMS服務(wù)應(yīng)用規(guī)則I的形式化
Fig.3 Formalization of application rule I
規(guī)則II表示利用深度封裝的函數(shù)調(diào)用WMS服務(wù)。在實(shí)際應(yīng)用中,一些網(wǎng)絡(luò)地理信息系統(tǒng)會(huì)對(duì)OpenLayers調(diào)用WMS服務(wù)的函數(shù)進(jìn)行深度封裝。例如,聯(lián)合國(guó)糧食與農(nóng)業(yè)組織的GeoNetwork網(wǎng)站將“OpenLayers.Layer.WMS”函數(shù)深度封裝為“createWMSLayer”函數(shù),并利用“GeoNetwork.WMSList”數(shù)組傳遞WMS的URL鏈接地址。因?yàn)槊糠N系統(tǒng)深度封裝OpenLayers的形式不一,所以不能像規(guī)則I一樣直接利用正則表達(dá)式形式化深度封裝的函數(shù)。為此,本文直接將URL鏈接地址的正則表達(dá)式作為規(guī)則II的形式化描述(圖4)。為避免驗(yàn)證所有匹配的URL鏈接地址,本文將規(guī)則II與腳本上下文信息結(jié)合使用。首先,利用規(guī)則II匹配出JavaScript腳本中的URL鏈接地址;然后,獲取URL鏈接地址的前后各100個(gè)字符的上下文信息;最后,判斷URL鏈接地址字符串及其上下文信息是否包含詞語(yǔ)“wms”、“map”、“l(fā)ayer”和“capabilities”,如果包含上述詞語(yǔ)中的任何一個(gè),就將該URL鏈接地址作為潛在的WMS,否則,丟棄該URL鏈接地址。
圖4 WMS服務(wù)應(yīng)用規(guī)則II的形式化
Fig.4 Formalization of application rule II
在服務(wù)發(fā)現(xiàn)的過(guò)程中,優(yōu)先執(zhí)行規(guī)則I,只有當(dāng)規(guī)則I在引用OpenLayers.js的網(wǎng)站中沒(méi)有發(fā)現(xiàn)潛在的WMS時(shí),才執(zhí)行規(guī)則II。
為保證效率,規(guī)則I和規(guī)則II不會(huì)應(yīng)用到所有的JavaScript腳本文件中,而是只會(huì)應(yīng)用到可能引用WMS的JavaScript腳本文件中。為實(shí)現(xiàn)這一目的,本文以引用WMS的JavaScript腳本文件名為語(yǔ)料,利用詞頻統(tǒng)計(jì)方法總結(jié)了引用WMS的JavaScript腳本文件名的詞語(yǔ)特征,其詞語(yǔ)特征JSName如下:
(1)
規(guī)則I和規(guī)則II除了始終應(yīng)用在直接嵌入到地圖網(wǎng)頁(yè)中的JavaScript腳本外,本文會(huì)根據(jù)上述總結(jié)的詞語(yǔ)特征篩選應(yīng)用規(guī)則I和規(guī)則II的JavaScript腳本文件。如果JavaScript腳本文件名與式(1)中的某一詞語(yǔ)模糊匹配,則將規(guī)則I和規(guī)則II應(yīng)用到該JavaScript腳本文件,如果不匹配,則忽略該JavaScript腳本文件。
本文以上述方法為基礎(chǔ),采用C#語(yǔ)言設(shè)計(jì)開(kāi)發(fā)了WMS發(fā)現(xiàn)的原型系統(tǒng),旨在同時(shí)發(fā)現(xiàn)表層網(wǎng)絡(luò)和深層網(wǎng)絡(luò)中的WMS。其中,HTML網(wǎng)頁(yè)解析模塊采用開(kāi)源的HtmlAgilityPack插件,JavaScript腳本解析引擎采用開(kāi)源的Jurassic插件。實(shí)驗(yàn)平臺(tái)為PC(奔騰4,處理器,CPU3.20GHz,內(nèi)存1GB),操作系統(tǒng)為WindowsXPSP3。為便于比較,本文也構(gòu)建了一個(gè)傳統(tǒng)地圖服務(wù)爬蟲(chóng)。
為了突出本方法發(fā)現(xiàn)深層網(wǎng)絡(luò)中WMS服務(wù)的能力,實(shí)驗(yàn)一以表1中的URL鏈接地址為初始URL,在爬行過(guò)程中僅讓傳統(tǒng)地圖服務(wù)爬蟲(chóng)與本文構(gòu)建的深層網(wǎng)絡(luò)爬蟲(chóng)搜索表1中的URL鏈接地址。最終實(shí)驗(yàn)結(jié)果為傳統(tǒng)地圖服務(wù)爬蟲(chóng)發(fā)現(xiàn)了0個(gè)WMS( 因?yàn)楸?中的網(wǎng)站全部將WMS地址隱藏在JavaScript腳本中,并且也沒(méi)有在其他非地圖網(wǎng)頁(yè)中描述這些WMS),基于深層網(wǎng)絡(luò)爬蟲(chóng)的方法發(fā)現(xiàn)了35個(gè)WMS(比2.1節(jié)中少了2個(gè),因?yàn)檫@2個(gè)WMS服務(wù)不可訪問(wèn))。這說(shuō)明本文提出的方法能夠有效地發(fā)現(xiàn)位于深層網(wǎng)絡(luò)中的WMS服務(wù)。這主要是因?yàn)檫@幾個(gè)地圖網(wǎng)頁(yè)中的正文蘊(yùn)含較少的有用信息,計(jì)算得到的主題相關(guān)度往往低于給定的閾值,所以不能有效發(fā)現(xiàn)更多的URL鏈接地址;同時(shí)又由于傳統(tǒng)地圖服務(wù)爬蟲(chóng)缺少分析JavaScript腳本的能力,所以它不能發(fā)現(xiàn)深層網(wǎng)絡(luò)中的WMS。而基于深層網(wǎng)絡(luò)爬蟲(chóng)的方法得益于腳本解析引擎和總結(jié)的應(yīng)用規(guī)則,可以使其發(fā)現(xiàn)深層網(wǎng)絡(luò)中的WMS。
為了證明本方法能夠同時(shí)發(fā)現(xiàn)表層網(wǎng)絡(luò)中WMS的能力,實(shí)驗(yàn)二以表1中的URL鏈接地址和OpenLayers的中文官方網(wǎng)址http://www.openlayers.cn/portal.php、美國(guó)地址調(diào)查局的WMS列表網(wǎng)站http://coastalmap.marine.usgs.gov/mapservices/wms_svc.html及OGC聯(lián)盟網(wǎng)站http://www.opengeospatial.org為初始URL。在經(jīng)過(guò)2 748s后,共發(fā)現(xiàn)1 145個(gè)可用的WMS,將其集成到一個(gè)服務(wù)搜索引擎中(圖5)。這說(shuō)明本文提出的方法也能夠同時(shí)發(fā)現(xiàn)表層網(wǎng)絡(luò)和深層網(wǎng)絡(luò)中的WMS。
圖5 實(shí)驗(yàn)二發(fā)現(xiàn)的WMS服務(wù)列表
Fig.5ThelistofWMSdiscoveriedbytheexperiment2
Web地圖服務(wù)的搜索對(duì)于空間數(shù)據(jù)資源的集成與共享具有重要意義。針對(duì)傳統(tǒng)方法不能發(fā)現(xiàn)深層網(wǎng)絡(luò)中WMS的問(wèn)題,本文提出了一種基于深層網(wǎng)絡(luò)爬蟲(chóng)的Web地圖服務(wù)發(fā)現(xiàn)方法,首次從WMS應(yīng)用的視角出發(fā),總結(jié)了兩條WMS應(yīng)用規(guī)則,并采用正則表達(dá)式對(duì)其進(jìn)行了形式化描述。然后以傳統(tǒng)地圖服務(wù)爬蟲(chóng)為基礎(chǔ),新增腳本解析引擎和應(yīng)用規(guī)則,以達(dá)到發(fā)現(xiàn)JavaScript腳本中WMS的目的。實(shí)驗(yàn)表明,本文提出的方法能夠同時(shí)發(fā)現(xiàn)表層網(wǎng)絡(luò)和深層網(wǎng)絡(luò)中的WMS。下一步工作將集中在應(yīng)用規(guī)則擴(kuò)充、OGC服務(wù)發(fā)現(xiàn)的性能提高和OGC服務(wù)質(zhì)量監(jiān)測(cè)方面。
[1] 陳能成,陳澤強(qiáng),王偉.一種基于能力匹配和本體推理的高精度Web地圖服務(wù)發(fā)現(xiàn)方法[J].武漢大學(xué)學(xué)報(bào)( 信息科學(xué)版),2009,34(12):1471-1475.
[2]LOPEZ-PELLICERFJ,FLORCZYKAJ,BJARR,etal.Discoveringgeographicwebservicesinsearchengines[J].OnlineInformationReview,2011,35(6):909-927.
[3]BONEC,AGERA,BUNZELK,etal.Ageospatialsearchenginefordiscoveringmulti-formatgeospatialdataacrosstheweb[J].InternationalJournalofDigitalEarth,2014,http://dx.doi.org/10.1080/17538947.2014.966164(online).
[4] 武昊,廖安平,何超英,等.基于主題相關(guān)度的地理信息Web服務(wù)爬蟲(chóng)研究[J].地理與地理信息科學(xué),2012,28(2):27-30.
[5]LOPEZ-PELLICERFJ,BJARR,FLORCZYKAJ,etal.AreviewoftheimplementationofOGCWebServicesacrossEurope[J].InternationalJournalofSpatialDataInfrastructuresResearch,2011,6(1):168-186.
[6]SAMPLEJT,LADNERR,SHULMANL,etal.EnhancingtheUSNavy'sGIDBportalwithWebservices[J].IEEEInternetComputing,2006,10(5):53-60.
[7] 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.
[8] 劉偉,孟小峰,孟衛(wèi)一.Deep Web 數(shù)據(jù)集成研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2007,30(9):1475-1489.
[9] PICCININI H,CASANOVA M,LEME L P,et al.Publishing deep web geographic data[J].Geoinformatica,2014,18(4):769-792.
[10] HOU D Y,WU H,CHEN J,et al.A focused crawler for borderlands situation information with geographical properties of place Names[J].Sustainability,2014,6(10):6529-6552.
[11] LOECHEL A,SCHMID S.Comparison of different caching techniques for high-performance web map services[J].International journal of spatial data infrastructures research,2013,8:43-73.
A Web Map Service Discovery Method Based on Deep Web Crawler
HOU Dong-yang1,2,WU Hao2,WANG Jun-feng3,WANG Ming-shan4
(1.SchoolofEnvironmentScienceandSpatialInformatics,ChinaUniversityofMiningandTechnology,Xuzhou221116; 2.NationalGeomaticsCenterofChina,Beijing100830; 3.ZhongkeNineDegrees(Beijing)SpatialInformationTechnologyCo.,LTD,Beijing100190; 4.XiangyangBranchofChinaMobileCommunicationsGroupHubeiCo.,LTD,Xiangyang441003,China)
Traditional Web Map Service(WMS) discovery methods can discover WMS from the surface web.However,they can′t discover WMS from the deep Web.To solve the problem,this paper proposes a WMS discovery method based on deep web crawler.First,two rules are summarized from the WMS applications and are formalized by using the regular expressions.Then,their use flows are designed in this proposed method.Finally,a JavaScript parsing engine and the two application rules are added to construct the deep web crawler based on the traditional crawler.Experiments show that the proposed method is able to discover WMSs from the surface web and deep web at the same time.
Web Map Service;service discovery;crawler;deep Web
2015-03-20;
2015-05-17
國(guó)家自然科學(xué)基金項(xiàng)目(41301412)
侯東陽(yáng)(1986-),男,博士研究生,主要研究方向?yàn)榈乩砜臻g數(shù)據(jù)搜索與挖掘。E-mail:houdongyang1986@163.com
10.3969/j.issn.1672-0504.2015.05.003
P208
A
1672-0504(2015)05-0010-04