亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于分布式網(wǎng)絡(luò)爬蟲的Web空間數(shù)據(jù)獲取方法研究

        2019-04-12 01:55:02曾李陽朱齊華
        關(guān)鍵詞:爬蟲單機(jī)空間數(shù)據(jù)

        馮 玲,黃 亮*,曾李陽,朱齊華

        (1.昆明理工大學(xué) 國土資源工程學(xué)院,云南 昆明 650093; 2. 國家測繪地理信息局四川基礎(chǔ)地理信息中心,四川 成都 610041)

        GIS是一門以數(shù)據(jù)為基礎(chǔ)的學(xué)科,空間分析、空間統(tǒng)計(jì)和空間數(shù)據(jù)挖掘等研究都離不開空間數(shù)據(jù)的支撐,而互聯(lián)網(wǎng)中存在海量空間數(shù)據(jù),這些數(shù)據(jù)與人們的日常生活活動(dòng)密切相關(guān)并且包含的信息量十分豐富、現(xiàn)勢性極強(qiáng)。如果能夠?qū)ヂ?lián)網(wǎng)中廣泛存在的空間數(shù)據(jù)高效地進(jìn)行獲取,一方面可以補(bǔ)充基礎(chǔ)地理信息的不足,提供豐富的細(xì)節(jié)和準(zhǔn)實(shí)時(shí)更新,另一方面還能夠?yàn)镚IS空間分析和空間數(shù)據(jù)挖掘提供信息量豐富、高時(shí)效性的數(shù)據(jù)源。

        Web空間數(shù)據(jù)獲取主要采用網(wǎng)絡(luò)爬蟲技術(shù),國內(nèi)外許多學(xué)者在這方面進(jìn)行了研究。Leasure D R指出,利用網(wǎng)絡(luò)爬蟲技術(shù),可以豐富GIS空間分析的數(shù)據(jù)來源[1]。 Tezuka T等研究提出的網(wǎng)絡(luò)爬蟲技術(shù)降低了Web空間數(shù)據(jù)獲取的難度[2]。Zhang C J提出了基于網(wǎng)絡(luò)爬蟲技術(shù)的地名地址庫更新方法[3]。Hua-Ping Zhang等研究了從互聯(lián)網(wǎng)新聞報(bào)道中自動(dòng)提取POI數(shù)據(jù)的方法[4]。Li W研究了基于網(wǎng)絡(luò)爬蟲的OGC服務(wù)發(fā)現(xiàn)方法[5]。Chen X基于網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)了自動(dòng)化發(fā)現(xiàn)和檢索WMS服務(wù)[6]。Jiang J研究了檢索WFS服務(wù)的網(wǎng)絡(luò)爬蟲[7]。王明軍在普通網(wǎng)絡(luò)爬蟲技術(shù)基礎(chǔ)上提出了空間敏感爬蟲的思想體系,并從多個(gè)方面對其進(jìn)行了闡述[8]。蔡地在研究開源網(wǎng)絡(luò)爬蟲框架的基礎(chǔ)上,提出通過多線程和異步I/O兩種策略來優(yōu)化Web空間數(shù)據(jù)的獲取效率[9]。Ager A則在研究中指出,如果能夠?qū)eb空間數(shù)據(jù)進(jìn)行有效的利用,將對GIS的發(fā)展產(chǎn)生深遠(yuǎn)的影響[10]。

        通過分析國內(nèi)外研究現(xiàn)狀發(fā)現(xiàn),目前基于網(wǎng)絡(luò)爬蟲的Web空間數(shù)據(jù)獲取研究大多數(shù)采用單機(jī)網(wǎng)絡(luò)爬蟲的形式。然而,Web空間數(shù)據(jù)廣泛分布于不同的網(wǎng)絡(luò)站點(diǎn)中且更新頻率快,依賴單機(jī)網(wǎng)絡(luò)爬蟲抓取數(shù)據(jù)在抓取覆蓋率和效率上難以滿足需求,難以保證抓取數(shù)據(jù)的及時(shí)性和全面性,因此本文針對單機(jī)網(wǎng)絡(luò)爬蟲獲取Web空間數(shù)據(jù)存在的問題,研究基于分布式網(wǎng)絡(luò)爬蟲提高Web空間數(shù)據(jù)獲取效率。

        1 分布式網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)原理

        基于分布式網(wǎng)絡(luò)爬蟲的Web空間數(shù)據(jù)獲取方法不是通過增加單個(gè)爬蟲系統(tǒng)的負(fù)荷而是通過增加更多的爬蟲系統(tǒng)成員來提高數(shù)據(jù)獲取性能和效率,即采用多臺(tái)性能一般的機(jī)器來做數(shù)據(jù)抓取,同時(shí)在每臺(tái)機(jī)器上部署多個(gè)爬蟲,增加數(shù)據(jù)抓取的并發(fā)性。具體的實(shí)現(xiàn)方式是采用不同的機(jī)器承擔(dān)不同的角色分工,選取一臺(tái)性能較好的機(jī)器專門負(fù)責(zé)URL(Uniform Resoure Locator,統(tǒng)一資源定位器)的統(tǒng)一調(diào)度和去重,將這臺(tái)機(jī)器稱為主節(jié)點(diǎn),主要用來管理和維護(hù)待爬取URL隊(duì)列和已爬取URL隊(duì)列。采用多臺(tái)性能一般的機(jī)器進(jìn)行實(shí)際的網(wǎng)頁下載和數(shù)據(jù)解析,把這些機(jī)器稱為爬蟲節(jié)點(diǎn)。

        本文提出的分布式網(wǎng)絡(luò)爬蟲的運(yùn)行原理如圖1所示,爬蟲節(jié)點(diǎn)從主節(jié)點(diǎn)請求URL進(jìn)行數(shù)據(jù)抓取,在抓取數(shù)據(jù)的同時(shí)生成新的URL,并將此URL發(fā)送給主節(jié)點(diǎn),主節(jié)點(diǎn)負(fù)責(zé)對爬蟲節(jié)點(diǎn)提交的URL進(jìn)行去重,并將其加入待爬取URL隊(duì)列。爬蟲節(jié)點(diǎn)之間沒有通信聯(lián)系,每個(gè)爬蟲節(jié)點(diǎn)只和主節(jié)點(diǎn)進(jìn)行通信,主節(jié)點(diǎn)通過一個(gè)地址列表來保存系統(tǒng)中所有爬蟲節(jié)點(diǎn)的信息。因此,當(dāng)分布式網(wǎng)絡(luò)爬蟲系統(tǒng)中的節(jié)點(diǎn)有變化的時(shí)候(新增爬蟲節(jié)點(diǎn),刪除某爬蟲節(jié)點(diǎn),或爬蟲節(jié)點(diǎn)地址發(fā)生變化),主節(jié)點(diǎn)只需調(diào)整地址列表中數(shù)據(jù),爬蟲節(jié)點(diǎn)只需要負(fù)責(zé)抓取數(shù)據(jù)。同時(shí),主節(jié)點(diǎn)負(fù)責(zé)對分布式網(wǎng)絡(luò)爬蟲系統(tǒng)中各爬蟲節(jié)點(diǎn)進(jìn)行負(fù)載均衡。

        圖1 分布式網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)原理圖Fig.1 Schematic diagram of distributed network crawler implementation

        2 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2.1 系統(tǒng)架構(gòu)

        原型系統(tǒng)是根據(jù)上述分布式網(wǎng)絡(luò)爬蟲實(shí)現(xiàn)思路,在主節(jié)點(diǎn)上部署Redis緩存數(shù)據(jù)庫來管理和維護(hù)分布式網(wǎng)絡(luò)爬蟲系統(tǒng)中各爬蟲節(jié)點(diǎn)共享的已爬取URL隊(duì)列和待爬取URL隊(duì)列,爬蟲節(jié)點(diǎn)之間沒有通信聯(lián)系,每個(gè)爬蟲節(jié)點(diǎn)都會(huì)與主節(jié)點(diǎn)Redis緩存服務(wù)器建立連接,并在每個(gè)爬蟲節(jié)點(diǎn)上部署MongoDB數(shù)據(jù)庫,用來存儲(chǔ)和管理抓取到的數(shù)據(jù)。分布式網(wǎng)絡(luò)爬蟲系統(tǒng)中單個(gè)爬蟲節(jié)點(diǎn)的系統(tǒng)架構(gòu)如圖2所示。

        2.2 系統(tǒng)實(shí)現(xiàn)

        本文通過對開源網(wǎng)絡(luò)爬蟲框架Scrapy進(jìn)行深度開發(fā)來實(shí)現(xiàn)面向Web空間數(shù)據(jù)獲取的分布式網(wǎng)

        圖2 爬蟲節(jié)點(diǎn)系統(tǒng)架構(gòu)Fig.2 Crawler node system architecture

        絡(luò)爬蟲原型系統(tǒng)。Scrapy是一個(gè)爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的基于python語言的應(yīng)用框架[11],它基于Twisted異步網(wǎng)絡(luò)庫來管理網(wǎng)絡(luò)通訊[12]。開發(fā)者可以對Scrapy框架進(jìn)行擴(kuò)展以完成網(wǎng)絡(luò)爬蟲的定制,本文實(shí)現(xiàn)了定制的調(diào)度器、解析器、數(shù)據(jù)過濾器和下載器中間件,而下載器和爬蟲引擎則使用Scrapy框架自帶的模塊。表1為原型系統(tǒng)的開發(fā)環(huán)境。

        表1 原型系統(tǒng)開發(fā)環(huán)境Tab.1 Prototype system development environment

        3 系統(tǒng)測試與結(jié)果分析

        3.1 測試環(huán)境

        本文使用四臺(tái)配置普通的PC機(jī)來進(jìn)行系統(tǒng)測試,選擇其中內(nèi)存較大的一臺(tái)部署為主節(jié)點(diǎn),在其上安裝Redis緩存數(shù)據(jù)庫用于維護(hù)待爬取URL隊(duì)列和已爬取URL隊(duì)列。使用另外三臺(tái)PC機(jī)進(jìn)行實(shí)際的網(wǎng)頁下載和數(shù)據(jù)解析,在其上安裝python環(huán)境和MongoDB數(shù)據(jù)庫,將其作為爬蟲節(jié)點(diǎn),測試時(shí)的網(wǎng)絡(luò)帶寬為8 Mb/s。

        3.2 測試結(jié)果分析

        為了避免網(wǎng)絡(luò)流量對實(shí)驗(yàn)測試產(chǎn)生影響,將系統(tǒng)測試時(shí)間定于晚上10點(diǎn)至次日7點(diǎn),系統(tǒng)共運(yùn)行9個(gè)小時(shí)。分別對單機(jī)爬蟲和分布式網(wǎng)絡(luò)爬蟲系統(tǒng)進(jìn)行了測試,單機(jī)爬蟲的測試結(jié)果如表2所示。

        表2 單機(jī)爬蟲測試結(jié)果Tab.2 Single crawler test results

        分布式網(wǎng)絡(luò)爬蟲的測試結(jié)果如表3所示。

        表3 分布式網(wǎng)絡(luò)爬蟲測試結(jié)果Tab.3 Test results of distributed network crawler

        將實(shí)驗(yàn)數(shù)據(jù)結(jié)果繪制成折線圖,實(shí)驗(yàn)結(jié)果如圖3所示。

        由圖3可知,分布式網(wǎng)絡(luò)爬蟲系統(tǒng)中三個(gè)爬蟲節(jié)點(diǎn)抓取數(shù)據(jù)的總數(shù)與運(yùn)行時(shí)間可近似視為正比例關(guān)系,這說明原型系統(tǒng)能夠穩(wěn)定地運(yùn)行。分析此圖的橫縱坐標(biāo)可以得出,每條線的斜率就是數(shù)據(jù)爬取效率,采用分布式網(wǎng)絡(luò)爬蟲抓取數(shù)據(jù)的效率遠(yuǎn)高于單機(jī)爬蟲,這說明本文設(shè)計(jì)實(shí)現(xiàn)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)具有良好的擴(kuò)展性。測試過程中,每個(gè)爬蟲節(jié)點(diǎn)抓取數(shù)據(jù)的情況如圖4所示。

        圖3 分布式網(wǎng)絡(luò)爬蟲測試結(jié)果圖Fig.3 Test results of distributed web crawler

        圖4 單機(jī)與并行節(jié)點(diǎn)性能對比圖Fig.4 Comparison of performance between stand-alone and parallel nodes

        由圖4可知,當(dāng)采用分布式網(wǎng)絡(luò)爬蟲系統(tǒng)進(jìn)行爬取時(shí),其所包含的每個(gè)節(jié)點(diǎn)的爬取效率同單機(jī)爬蟲相比有所下降,但是這個(gè)下降是在正常范圍之內(nèi),因?yàn)槎鄠€(gè)節(jié)點(diǎn)同時(shí)運(yùn)行時(shí)共用同一條對外網(wǎng)絡(luò)接口,網(wǎng)絡(luò)帶寬成了并行爬行的主要瓶頸。同時(shí)從圖4中還可以得知,節(jié)點(diǎn)一、節(jié)點(diǎn)二、節(jié)點(diǎn)三的所承擔(dān)的爬取任務(wù)數(shù)量基本相同,這說明本文設(shè)計(jì)和實(shí)現(xiàn)的分布式網(wǎng)絡(luò)爬蟲系統(tǒng)能夠?qū)崿F(xiàn)系統(tǒng)各個(gè)節(jié)點(diǎn)之間負(fù)載均衡。

        4 結(jié)束語

        本文針對單機(jī)網(wǎng)絡(luò)爬蟲獲取Web空間數(shù)據(jù)在抓取覆蓋率和抓取效率上受到限制,難以保證抓取數(shù)據(jù)的及時(shí)性和全面性的問題,研究了基于分布式網(wǎng)絡(luò)爬蟲的Web空間數(shù)據(jù)獲取方法。通過實(shí)驗(yàn)分析對比證明,本文提出的基于分布式網(wǎng)絡(luò)爬蟲的Web空間數(shù)據(jù)獲取方法能夠提高Web空間數(shù)據(jù)獲取效率,設(shè)計(jì)和實(shí)現(xiàn)的Web空間數(shù)據(jù)獲取原型系統(tǒng)能夠穩(wěn)定運(yùn)行,并且系統(tǒng)具有良好的擴(kuò)展性,系統(tǒng)各個(gè)節(jié)點(diǎn)之間能夠?qū)崿F(xiàn)負(fù)載均衡。

        猜你喜歡
        爬蟲單機(jī)空間數(shù)據(jù)
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
        熱連軋單機(jī)架粗軋機(jī)中間坯側(cè)彎廢鋼成因及對策
        新疆鋼鐵(2021年1期)2021-10-14 08:45:36
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        宇航通用單機(jī)訂單式管理模式構(gòu)建與實(shí)踐
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        水電的“百萬單機(jī)時(shí)代”
        能源(2017年9期)2017-10-18 00:48:22
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        元數(shù)據(jù)驅(qū)動(dòng)的多中心空間數(shù)據(jù)同步方法研究
        筑路機(jī)械單機(jī)核算的思考與研究
        基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲(chǔ)與組織研究
        久久久噜噜噜久久中文福利| 日本一区二区三区一级免费| 成人水蜜桃视频在线观看| а天堂中文在线官网在线| 亚洲午夜精品久久久久久人妖| jjzz日本护士| 久草视频在线播放免费| 爽爽影院免费观看| 精品一区二区三区免费播放| 97福利视频| 日本不卡一区二区三区在线观看| 久久黄色视频| 日本一区二区三区免费| 久久精品国产白丝爆白浆| 国产精品老熟女乱一区二区| 日产乱码一二三区别免费l| 国产熟女露脸大叫高潮| 亚洲欧美日韩高清中文在线 | 久久福利青草精品免费 | 在线视频自拍视频激情| 成人国产一区二区三区| 香蕉久久久久久久av网站| 亚洲AV无码乱码一区二区三区| 蜜桃视频羞羞在线观看| 少妇愉情理伦片高潮日本| 中文字幕第一页亚洲| 成人偷拍自拍在线视频| 久久久国产精品无码免费专区 | 日本无遮挡吸乳呻吟视频| 久久久国产精品ⅤA麻豆百度| 国产激情综合五月久久| 一本久久a久久精品vr综合| 国产91精选在线观看麻豆| 日日麻批视频免费播放器| 成人无码一区二区三区| 国产精品亚洲成在人线| 中文字幕在线一区乱码| 精品人妻av一区二区三区 | 日本一区二区日韩在线| 亚洲第一狼人天堂网亚洲av| 欧美成人精品第一区二区三区|