馮玲 黃亮 曾李陽 朱齊華
摘 要:本文針對單機網(wǎng)絡爬蟲獲取Web空間數(shù)據(jù)在抓取覆蓋率和抓取效率上均受到一定程度的限制,難以保證所抓取數(shù)據(jù)的及時性以及全面性問題,研究了基于分布式網(wǎng)絡爬蟲的Web空間數(shù)據(jù)獲取方法,設計了基于分布式網(wǎng)絡爬蟲的Web空間數(shù)據(jù)獲取原型系統(tǒng)并且最終實現(xiàn),并且通過對原型系統(tǒng)進行相關的測試來證實了本文所提出解決方法的有效性。
關鍵詞:Web空間數(shù)據(jù);分布式網(wǎng)絡爬蟲;原型系統(tǒng)
中圖分類號:P208
文獻標識碼: A
GIS是一門以數(shù)據(jù)為基礎的學科,空間分析、空間統(tǒng)計和空間數(shù)據(jù)挖掘等研究都離不開空間數(shù)據(jù)的支撐,而互聯(lián)網(wǎng)中存在海量空間數(shù)據(jù),這些數(shù)據(jù)與人們的日常生活活動密切相關并且包含的信息量十分豐富、現(xiàn)勢性極強。如果能夠對互聯(lián)網(wǎng)中廣泛存在的空間數(shù)據(jù)高效地進行獲取,一方面可以補充基礎地理信息的不足,提供豐富的細節(jié)和準實時更新,另一方面還能夠為GIS空間分析和空間數(shù)據(jù)挖掘提供信息量豐富、高時效性的數(shù)據(jù)源。
Web空間數(shù)據(jù)獲取主要采用網(wǎng)絡爬蟲技術,國內(nèi)外許多學者在這方面進行了研究。Leasure D R指出,利用網(wǎng)絡爬蟲技術,可以豐富GIS空間分析的數(shù)據(jù)來源[1]。 Tezuka T等研究提出的網(wǎng)絡爬蟲技術降低了Web空間數(shù)據(jù)獲取的難度[2]。Zhang C J提出了基于網(wǎng)絡爬蟲技術的地名地址庫更新方法[3]。Hua ̄Ping Zhang等研究了從互聯(lián)網(wǎng)新聞報道中自動提取POI數(shù)據(jù)的方法[4]。Li W研究了基于網(wǎng)絡爬蟲的OGC服務發(fā)現(xiàn)方法[5]。Chen X基于網(wǎng)絡爬蟲實現(xiàn)了自動化發(fā)現(xiàn)和檢索WMS服務[6]。Jiang J研究了檢索WFS服務的網(wǎng)絡爬蟲[7]。王明軍在普通網(wǎng)絡爬蟲技術基礎上提出了空間敏感爬蟲的思想體系,并從多個方面對其進行了闡述[8]。蔡地在研究開源網(wǎng)絡爬蟲框架的基礎上,提出通過多線程和異步I/O兩種策略來優(yōu)化Web空間數(shù)據(jù)的獲取效率[9]。Ager A則在研究中指出,如果能夠對Web空間數(shù)據(jù)進行有效的利用,將對GIS的發(fā)展產(chǎn)生深遠的影響[10]。
通過分析國內(nèi)外研究現(xiàn)狀發(fā)現(xiàn),目前基于網(wǎng)絡爬蟲的Web空間數(shù)據(jù)獲取研究大多數(shù)采用單機網(wǎng)絡爬蟲的形式。然而,Web空間數(shù)據(jù)廣泛分布于不同的網(wǎng)絡站點中且更新頻率快,依賴單機網(wǎng)絡爬蟲抓取數(shù)據(jù)在抓取覆蓋率和效率上難以滿足需求,難以保證抓取數(shù)據(jù)的及時性和全面性,因此本文針對單機網(wǎng)絡爬蟲獲取Web空間數(shù)據(jù)存在的問題,研究基于分布式網(wǎng)絡爬蟲提高Web空間數(shù)據(jù)獲取效率。
1 分布式網(wǎng)絡爬蟲實現(xiàn)原理
基于分布式網(wǎng)絡爬蟲的Web空間數(shù)據(jù)獲取方法不是通過增加單個爬蟲系統(tǒng)的負荷而是通過增加更多的爬蟲系統(tǒng)成員來提高數(shù)據(jù)獲取性能和效率,即采用多臺性能一般的機器來做數(shù)據(jù)抓取,同時在每臺機器上部署多個爬蟲,增加數(shù)據(jù)抓取的并發(fā)性。具體的實現(xiàn)方式是采用不同的機器承擔不同的角色分工,選取一臺性能較好的機器專門負責URL(Uniform Resoure Locator,統(tǒng)一資源定位器)的統(tǒng)一調度和去重,將這臺機器稱為主節(jié)點,主要用來管理和維護待爬取URL隊列和已爬取URL隊列。采用多臺性能一般的機器進行實際的網(wǎng)頁下載和數(shù)據(jù)解析,把這些機器稱為爬蟲節(jié)點。
本文提出的分布式網(wǎng)絡爬蟲的運行原理如圖1所示,爬蟲節(jié)點從主節(jié)點請求URL進行數(shù)據(jù)抓取,在抓取數(shù)據(jù)的同時生成新的URL,并將此URL發(fā)送給主節(jié)點,主節(jié)點負責對爬蟲節(jié)點提交的URL進行去重,并將其加入待爬取URL隊列。爬蟲節(jié)點之間沒有通信聯(lián)系,每個爬蟲節(jié)點只和主節(jié)點進行通信,主節(jié)點通過一個地址列表來保存系統(tǒng)中所有爬蟲節(jié)點的信息。因此,當分布式網(wǎng)絡爬蟲系統(tǒng)中的節(jié)點有變化的時候(新增爬蟲節(jié)點,刪除某爬蟲節(jié)點,或爬蟲節(jié)點地址發(fā)生變化),主節(jié)點只需調整地址列表中數(shù)據(jù),爬蟲節(jié)點只需要負責抓取數(shù)據(jù)。同時,主節(jié)點負責對分布式網(wǎng)絡爬蟲系統(tǒng)中各爬蟲節(jié)點進行負載均衡。
4 結束語
本文針對單機網(wǎng)絡爬蟲獲取Web空間數(shù)據(jù)在抓取覆蓋率和抓取效率上受到限制,難以保證抓取數(shù)據(jù)的及時性和全面性的問題,研究了基于分布式網(wǎng)絡爬蟲的Web空間數(shù)據(jù)獲取方法。通過實驗分析對比證明,本文提出的基于分布式網(wǎng)絡爬蟲的Web空間數(shù)據(jù)獲取方法能夠提高Web空間數(shù)據(jù)獲取效率,設計和實現(xiàn)的Web空間數(shù)據(jù)獲取原型系統(tǒng)能夠穩(wěn)定運行,并且系統(tǒng)具有良好的擴展性,系統(tǒng)各個節(jié)點之間能夠實現(xiàn)負載均衡。
參考文獻:
[1]Leasure D R. Geodata Crawler:A centralized national geodatabase and automated multi-scale data crawler to overcome GIS bottlenecks in data analysis workflows[C].Dresden,Germany:Esa Convention, 2013.
[2]Tezuka T,Kurashima T,Tanaka K. Toward tighter integration of web search with a Geographic information system[C]//Proceedings of the 15th international conference on World Wide Web.Edinburgh: ACM,2006:277-286.
[3]Zhang C J,Zhang X Y,ZhuS N,et al. Method of Toponym Database Updating Based on Web Crawler[J]. J.Geo ̄Inf. SCI,2011,13:492-499.
[4]Hua ̄Ping Zhang,Qian Mo.Structured POI data Extraction from Internet News[C].Beijing: The 4th International Universal Communication Symposium (IUCS),2010.
[5]Li W,Yang C. An active crawler for discovering geospatial web services and their distribution pattern ̄a case of study of OGC web map service [J].International Journal Geographical Information Science,2010,24(8):1127-1147.
[6]CHEN X,CHEN R,WEI W. Design and Realization of Web Service Snatch and Parse Engine Based on Web Crawler [J].Geomatics World,2010,3:016.
[7]Jiang J,Yang C,Ren Y .A spatial information crawler for opengis wfs [C]//The 6th International Conference on Advanced Optical Materials and Devices. Guangzhou: International Society for Optics and Photonics,2008:71432C-9.
[8]王明軍.基于Web的空間數(shù)據(jù)爬取與度量研究[D].武漢: 武漢大學,2013.
[9]蔡地.互聯(lián)網(wǎng)多源矢量空間數(shù)據(jù)自動獲取與管理方法研究[D].北京:中國測繪科學研究院,2015.
[10]Ager A,Schrader ̄Patton C,Bunzel K,et al. Internet Map Services:New portal for global ecological monitoring,or geodata junkyard?[C]//Proceedings of the 1st International Conference and Exhibition on Computing for Geospatial Research & Application. Washington, DC, USA: ACM,2010:37.
[11]Ryan Mitchell. Web Scraping with Python[M].Sebastopol:O’Reilly Media,Inc, 2015:7-24.
[12]Scrapy developers. Scrapy Documentation Release 1.0.3[EB/OL].(2015-8-15)https://pypi.org/project/Scrapy/1.0.3/.
[13]阮正杰.基于Twisted架構的GPS協(xié)議轉換軟網(wǎng)關的設計與實現(xiàn)[D].杭州:浙江工業(yè)大學,2013.
(責任編輯:曾 晶)