• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ICE的分布式爬蟲(chóng)設(shè)計(jì)與實(shí)現(xiàn)

    2015-12-02 02:28:46雷滋和陶宏才
    關(guān)鍵詞:爬蟲(chóng)服務(wù)端中間件

    雷滋和, 陶宏才

    (西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川成都611756)

    0 引言

    隨著移動(dòng)智能和互聯(lián)網(wǎng)信息技術(shù)的飛速發(fā)展,近年來(lái),Twitter、Facebook、新浪微博為代表的社交網(wǎng)絡(luò)[1]的出現(xiàn)和快速發(fā)展深深地影響了人們的交流方式,成為生活中不可或缺的一部分。社交網(wǎng)絡(luò)集交友、傳媒、電商等多種功能于一體,吸引了不同年齡段、不同性別、不同職業(yè)、不同國(guó)籍的大量用戶。

    微博是一種社交網(wǎng)站,不過(guò)隨著快速發(fā)展及用戶的需求,已經(jīng)逐漸演變成一種社會(huì)化自媒體。平臺(tái)中媒體用戶利用微博吸引關(guān)注,偶像明星利用微博保持和粉絲的交流,商家用戶利用微博發(fā)布一些促銷(xiāo)信息和商品廣告。草根用戶利用微博關(guān)注最新新聞和親朋好友的最新動(dòng)態(tài)。微博平臺(tái)由于自身的一些特性,如簡(jiǎn)潔性、傳播性、實(shí)時(shí)性等,吸引了大量用戶。

    由于社交網(wǎng)絡(luò)吸引了大量用戶,因此,對(duì)社交網(wǎng)絡(luò)數(shù)據(jù)的分析管理也有很多研究。通過(guò)對(duì)微博數(shù)據(jù)的挖掘,可以分析預(yù)測(cè)用戶的愛(ài)好,獲取社會(huì)熱點(diǎn)新聞?shì)浾?,挖掘人際關(guān)系,預(yù)測(cè)信息傳播趨勢(shì)等。同時(shí),通過(guò)挖掘用戶興趣,也可進(jìn)行商業(yè)推廣等。不過(guò),要做到上述這些數(shù)據(jù)的分析,最重要的一步就是需要進(jìn)行數(shù)據(jù)采集。為此,針對(duì)新浪微博,采用中間件ICE,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)分布式網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng),以采集微博數(shù)據(jù)。

    1 技術(shù)簡(jiǎn)介

    1.1 爬蟲(chóng)技術(shù)

    網(wǎng)絡(luò)爬蟲(chóng)(Crawler)又稱(chēng)為網(wǎng)頁(yè)蜘蛛,是一種按照某個(gè)規(guī)則自動(dòng)從互聯(lián)網(wǎng)獲取信息資源的程序。爬蟲(chóng)從一個(gè)或多個(gè)初始的頁(yè)面URL開(kāi)始,通過(guò)分析源文件中的URL,提取出新的URL鏈接;然后又利用這些鏈接,繼續(xù)尋找新的鏈接。如此不斷循環(huán),直至抓取和分析完所有頁(yè)面。作為搜索引擎和網(wǎng)絡(luò)數(shù)據(jù)挖掘的基礎(chǔ)組成部分,網(wǎng)絡(luò)爬蟲(chóng)起著重要的數(shù)據(jù)采集作用。

    早期的Google爬蟲(chóng)由斯坦福大學(xué)設(shè)計(jì)[3]。該爬蟲(chóng)由一個(gè)URL服務(wù)器將URL分發(fā)到若干爬蟲(chóng)節(jié)點(diǎn),各爬蟲(chóng)通過(guò)單線程異步I/O方式爬取網(wǎng)頁(yè)。Mercator[4]爬蟲(chóng)由康柏系統(tǒng)研究中心的 Allan Heydon和MarcNajork開(kāi)發(fā),采用多線程同步方式以及一些優(yōu)化策略(如DNS緩沖、延遲存儲(chǔ)等)爬取網(wǎng)頁(yè)。國(guó)內(nèi)也有機(jī)構(gòu)對(duì)爬蟲(chóng)進(jìn)行研究,例如,北大天網(wǎng)[5]開(kāi)發(fā)的分布式網(wǎng)絡(luò)爬蟲(chóng),采用兩階段哈希機(jī)制實(shí)現(xiàn)了億級(jí)數(shù)量的網(wǎng)頁(yè)爬取。

    1.2 ICE中間件技術(shù)

    ICE網(wǎng)絡(luò)通信引擎[6-7],是一種面向?qū)ο蟮母咝阅苤虚g件,提供完善的、適合于異構(gòu)網(wǎng)絡(luò)環(huán)境的分布式系統(tǒng)解決方案,包括庫(kù)、API和工具。

    圖1 ICE邏輯結(jié)構(gòu)圖

    圖1展示了ICE客戶與服務(wù)器內(nèi)部的邏輯結(jié)構(gòu)圖,服務(wù)端與客戶端是由ICE核心庫(kù)、Slice接口的生成代碼以及應(yīng)用程序代碼組成。ICE核心庫(kù)包含網(wǎng)絡(luò)通信、多線程等一些鏈接庫(kù)且提供了API接口,應(yīng)用程序通過(guò)ICE API可訪問(wèn)核心庫(kù)并進(jìn)行事務(wù)管理。代理由Slice接口生成,主要有2個(gè)功能:(1)為客戶提供訪問(wèn)服務(wù)端接口;(2)為數(shù)據(jù)傳輸提供整編和解編功能,整編將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)序列化,轉(zhuǎn)換為數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)形式,解編則將收到的數(shù)據(jù)反序列化。骨架亦由Slice接口生成,是代理在服務(wù)端的等價(jià)物,提供向上調(diào)用接口及整編和解編功能。對(duì)象適配器為ICE API之一,負(fù)責(zé)創(chuàng)建傳給客戶的代理,且將客戶端的請(qǐng)求轉(zhuǎn)換成服務(wù)端對(duì)應(yīng)對(duì)象上的特定方法。

    2 分布式爬蟲(chóng)的設(shè)計(jì)實(shí)現(xiàn)

    2.1 爬蟲(chóng)基本結(jié)構(gòu)

    分布式爬蟲(chóng)一般分為主從式和對(duì)等式2種結(jié)構(gòu),文中采用主從式結(jié)構(gòu)進(jìn)行分布式爬蟲(chóng)的設(shè)計(jì),系統(tǒng)分為服務(wù)端和客戶端。服務(wù)端能夠進(jìn)行任務(wù)的調(diào)度與數(shù)據(jù)存儲(chǔ),客戶端進(jìn)行數(shù)據(jù)的爬取??蛻舳伺c服務(wù)端進(jìn)行通信時(shí),文中采用ICE中間件技術(shù)進(jìn)行通信。

    圖2 分布式爬蟲(chóng)框架

    圖2給出整個(gè)爬蟲(chóng)的架構(gòu)圖。整個(gè)爬蟲(chóng)框架主要分為3部分:

    (1)消息中間件。為客戶端和服務(wù)端提供通信。

    (2)爬蟲(chóng)服務(wù)端。爬蟲(chóng)服務(wù)端包括2個(gè)模塊:調(diào)度服務(wù)和存儲(chǔ)服務(wù)。調(diào)度服務(wù)端從任務(wù)列表中取出任務(wù)后,向爬蟲(chóng)客戶端分發(fā)任務(wù);存儲(chǔ)服務(wù)端負(fù)責(zé)將爬蟲(chóng)爬取到的數(shù)據(jù)存儲(chǔ)到DB中。

    (3)爬蟲(chóng)客戶端。主要分布于各個(gè)節(jié)點(diǎn)上,爬蟲(chóng)客戶端從調(diào)度服務(wù)器獲取任務(wù),然后進(jìn)行微博數(shù)據(jù)爬取,將爬取到的數(shù)據(jù)發(fā)送到存儲(chǔ)服務(wù)器,進(jìn)行統(tǒng)一存儲(chǔ)。

    框架通過(guò)ICE中間件技術(shù),將各個(gè)功能模塊分布到各個(gè)Server上,各個(gè)模塊分工明確,并且不相互干擾。如若爬取更多數(shù)據(jù),只需要增加爬蟲(chóng)客戶端即可。

    2.2 ICE中間件設(shè)計(jì)

    作為一個(gè)面向?qū)ο蟮闹虚g件平臺(tái),ICE提供了一系列的工具、API和庫(kù)建立面向?qū)ο蟮目蛻舳撕头?wù)器的網(wǎng)絡(luò)通信,ICE適合在異構(gòu)環(huán)境中應(yīng)用,并且應(yīng)用的源碼都可以移植。

    圖3給出基于ICE應(yīng)用程序的開(kāi)發(fā)流程。系統(tǒng)開(kāi)發(fā)時(shí)首先需要定制公共接口,其功能在服務(wù)端實(shí)現(xiàn)。通過(guò)接口,爬蟲(chóng)客戶端可以向服務(wù)端發(fā)送請(qǐng)求,服務(wù)端根據(jù)接口的請(qǐng)求完成相應(yīng)的操作。ICE通過(guò)Slice語(yǔ)言來(lái)編寫(xiě)公共的接口文件,它是以一種獨(dú)立于特定編程語(yǔ)言的方式定義數(shù)據(jù)、接口、操作等,然后通過(guò)ICE內(nèi)置編譯器轉(zhuǎn)換成特定語(yǔ)言的API。在編寫(xiě)ICE應(yīng)用時(shí),均需進(jìn)行Slice接口的定義。

    圖3 開(kāi)發(fā)流程

    在爬蟲(chóng)系統(tǒng)中,涉及到服務(wù)模塊在爬蟲(chóng)系統(tǒng)中擔(dān)當(dāng)著不同的任務(wù),因此,這里給定2個(gè)Slice。表1給出涉及到的2個(gè)服務(wù)模塊同爬蟲(chóng)客戶端的接口。

    可以看到,在Slice中,定義爬蟲(chóng)服務(wù)端與客戶端進(jìn)行交互的數(shù)據(jù)類(lèi)型以及相對(duì)應(yīng)的接口。在Slice定義后,可以根據(jù)Slice生成相應(yīng)的骨架和代理。ICE提供了生成骨架和代理的工具,基于Python語(yǔ)言,生成骨架和代理代碼如下:

    Ice.loadSlice('scheduler_server.ice')

    import weiboCrawler

    通過(guò)loadSlice,即可將Slice語(yǔ)言轉(zhuǎn)換成骨架(或代理),在形成的骨架(或代理)中,不僅包含所定義的接口,源碼同時(shí)為客戶和服務(wù)器提供針對(duì)特定類(lèi)型的運(yùn)行時(shí)支持。在接口確定后,便可以進(jìn)行爬蟲(chóng)服務(wù)端和客戶端的開(kāi)發(fā)。服務(wù)端實(shí)現(xiàn)接口中所定義的功能,客戶端通過(guò)代理,調(diào)用接口中的方法,便可在服務(wù)端執(zhí)行對(duì)應(yīng)的方法,實(shí)現(xiàn)與服務(wù)端的交互。需要說(shuō)明的是,圖3中最下一層形成的即是圖2的分布式爬蟲(chóng)框架。其中,用2個(gè)簡(jiǎn)略的ICE框表示圖2中的中間件部分。

    表1 調(diào)度服務(wù)模塊和存儲(chǔ)服務(wù)模塊的Slice接口

    2.3 爬蟲(chóng)服務(wù)端設(shè)計(jì)

    由Slice生成的骨架類(lèi)是一個(gè)抽象的接口類(lèi),在服務(wù)端進(jìn)行設(shè)計(jì)時(shí),需要繼承骨架類(lèi),并將對(duì)應(yīng)接口的功能實(shí)現(xiàn)。爬蟲(chóng)系統(tǒng)包含調(diào)度服務(wù)和存儲(chǔ)服務(wù)2個(gè)服務(wù)端。

    2.3.1 調(diào)度服務(wù)

    模塊為整個(gè)爬蟲(chóng)系統(tǒng)的控制節(jié)點(diǎn),整個(gè)爬蟲(chóng)系統(tǒng)需要依賴(lài)此節(jié)點(diǎn)獲取爬取任務(wù)??蛻舳送ㄟ^(guò)接口獲取需要爬取的微博用戶ID,在爬取完畢后通過(guò)接口通知調(diào)度服務(wù)。因此,服務(wù)模塊與客戶端交互有2個(gè)接口:

    getUser:爬蟲(chóng)客戶端通過(guò)該接口獲取需要爬取的用戶ID。

    putUser:爬蟲(chóng)客戶端通過(guò)該接口通知調(diào)度服務(wù)某個(gè)微博用戶爬取完畢。

    系統(tǒng)通過(guò)任務(wù)隊(duì)列的方式來(lái)實(shí)現(xiàn)任務(wù)的調(diào)度。在系統(tǒng)中,爬取一個(gè)微博用戶微博數(shù)據(jù)為一條任務(wù),客戶端通過(guò)從服務(wù)端獲取所要爬取的微博用戶ID即任務(wù)ID對(duì)微博數(shù)據(jù)進(jìn)行爬取。系統(tǒng)采用ICE內(nèi)置數(shù)據(jù)庫(kù)Berkeley DB實(shí)現(xiàn)任務(wù)隊(duì)列。系統(tǒng)中涉及2個(gè)數(shù)據(jù)庫(kù),一個(gè)用來(lái)存儲(chǔ)未爬取的用戶ID,另一個(gè)存儲(chǔ)已經(jīng)爬取完畢的用戶ID。客戶端獲取時(shí),都是從未爬取的數(shù)據(jù)庫(kù)中獲取需要爬取的用戶ID,通過(guò)2個(gè)數(shù)據(jù)庫(kù),起到了任務(wù)隊(duì)列的作用。系統(tǒng)進(jìn)行任務(wù)調(diào)度的主要流程為:啟動(dòng)調(diào)度服務(wù)端,系統(tǒng)讀取未爬取的微博用戶ID到任務(wù)隊(duì)列;客戶端通過(guò)接口從服務(wù)端獲取任務(wù);服務(wù)端從任務(wù)隊(duì)列取出任務(wù)ID,分發(fā)給客戶端;客戶端執(zhí)行任務(wù)完畢,通知服務(wù)端,服務(wù)端將完成的任務(wù)ID存儲(chǔ)到數(shù)據(jù)庫(kù)中去。

    2.3.2 存儲(chǔ)服務(wù)

    模塊為爬蟲(chóng)系統(tǒng)的存儲(chǔ)節(jié)點(diǎn),所有爬蟲(chóng)客戶端爬取的微博數(shù)據(jù)都會(huì)發(fā)送到本模塊進(jìn)行存儲(chǔ)。模塊為爬蟲(chóng)客戶端提供的接口為writeWB,客戶端通過(guò)調(diào)用該接口即可進(jìn)行數(shù)據(jù)的存儲(chǔ)。

    系統(tǒng)采用分布式數(shù)據(jù)庫(kù)Hbase[9]對(duì)爬取的微博數(shù)據(jù)存儲(chǔ),HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),適合非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。文中主要對(duì)微博數(shù)據(jù)的ID、內(nèi)容、用戶ID、發(fā)布時(shí)間等字段存儲(chǔ)。系統(tǒng)中通過(guò)Thrift來(lái)對(duì)Hbase進(jìn)行訪問(wèn),存儲(chǔ)微博數(shù)據(jù)。存儲(chǔ)微博數(shù)據(jù)的具體流程為:啟動(dòng) Hbase并啟動(dòng)Hbase的Thrift服務(wù);通過(guò)Thrift與Hbase建立服務(wù);啟動(dòng)爬蟲(chóng)的存儲(chǔ)服務(wù),爬蟲(chóng)客戶端通過(guò)接口將爬取的微博數(shù)據(jù)發(fā)送到服務(wù)端;服務(wù)端接收到數(shù)據(jù)后,利用Thrift API將微博數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫(kù)中去。

    在調(diào)度服務(wù)和存儲(chǔ)服務(wù)完成對(duì)應(yīng)功能后,均需要建立一個(gè)通信器(communicator),完成對(duì)ICE運(yùn)行時(shí)服務(wù)的初始化。然后,創(chuàng)建一個(gè)對(duì)象適配器(adapter),并創(chuàng)建代理接口、設(shè)置代理標(biāo)識(shí),用以將客戶的請(qǐng)求映射到編程語(yǔ)言對(duì)象上的特定方法創(chuàng)建可以傳給客戶的代理。系統(tǒng)涉及2個(gè)標(biāo)識(shí),分別是調(diào)度服務(wù)和存儲(chǔ)服務(wù),客戶端通過(guò)這2個(gè)標(biāo)識(shí)可以識(shí)別對(duì)應(yīng)的代理。設(shè)置好后,將代理增加到適配器中去。具體過(guò)程如下面代碼所示:

    服務(wù)端在創(chuàng)建完畢后,通過(guò)適配器的activate方法將其激活,然后調(diào)用waitForShutdown方法啟動(dòng)通信器,以響應(yīng)和處理客戶端發(fā)出的連接請(qǐng)求。

    2.4 爬蟲(chóng)客戶端設(shè)計(jì)

    在進(jìn)行客戶端的功能開(kāi)發(fā)時(shí),客戶端需要與服務(wù)端取得通信??蛻舳伺c服務(wù)端的一次通信過(guò)程為:創(chuàng)建通信器,初始化ICE運(yùn)行時(shí)服務(wù);通過(guò)服務(wù)端地址和代理標(biāo)識(shí),獲取服務(wù)端在客戶端的遠(yuǎn)程代理;客戶端通過(guò)代理調(diào)用接口中的方法,與服務(wù)端進(jìn)行通信;客戶端執(zhí)行完畢,通信結(jié)束,銷(xiāo)毀通信器。至此,客戶端與服務(wù)端就完成一次通信。

    爬蟲(chóng)客戶端進(jìn)行初始化的代碼如下所示:

    每個(gè)爬蟲(chóng)節(jié)點(diǎn)創(chuàng)建一個(gè)通信器,通過(guò)初始化服務(wù)代理Prx并且調(diào)用checkedCast方法,將服務(wù)代理轉(zhuǎn)換成服務(wù)端在客戶端對(duì)應(yīng)的代理,爬蟲(chóng)系統(tǒng)中,包含調(diào)度代理和存儲(chǔ)代理2個(gè)代理。ICE運(yùn)行時(shí),在庫(kù)的支持下,每個(gè)節(jié)點(diǎn)與服務(wù)器的通信器就建立了連接。然后,爬蟲(chóng)節(jié)點(diǎn)就可以通過(guò)代理Prx調(diào)用接口中數(shù)據(jù)和方法。這樣,訪問(wèn)遠(yuǎn)程對(duì)象和數(shù)據(jù)就如同本地訪問(wèn)一樣,實(shí)際代碼運(yùn)行于服務(wù)端。爬蟲(chóng)節(jié)點(diǎn)正是利用這個(gè)特點(diǎn),與調(diào)度服務(wù)及存儲(chǔ)服務(wù)進(jìn)行數(shù)據(jù)的交互。

    圖4 爬取流程

    爬蟲(chóng)節(jié)點(diǎn)主要負(fù)責(zé)從網(wǎng)絡(luò)上爬取數(shù)據(jù),具體流程如圖4所示。

    (1)模擬登錄。微博同傳統(tǒng)的web網(wǎng)站不同,以前的網(wǎng)站不需要登錄,而微博需要進(jìn)入個(gè)人主頁(yè)需要登錄,否則訪問(wèn)將會(huì)跳轉(zhuǎn)到登錄頁(yè)面。因此,在進(jìn)行數(shù)據(jù)爬取時(shí),需要設(shè)計(jì)登錄模塊,只有登錄后的用戶才可進(jìn)行微博數(shù)據(jù)的爬取。文中采用SESSION機(jī)制,通過(guò)COOKIE和URL重寫(xiě)實(shí)現(xiàn)用戶登錄。

    (2)登錄成功后,爬蟲(chóng)通過(guò)調(diào)度服務(wù)端代理,與調(diào)度服務(wù)端進(jìn)行通信,獲取微博用戶的ID,利用用戶ID和新浪微博url(http://weibo.com/aj/mblog/mbloglist)分段抓取用戶的微博數(shù)據(jù)。此時(shí)返回的是JSON數(shù)據(jù),需先將JSON解析,然后利用BeautifulSoup解析出用戶的每條微博數(shù)據(jù)。Beautiful Soup提供一些簡(jiǎn)單的、python式的函數(shù)處理導(dǎo)航、搜索、修改分析樹(shù)等。它是一個(gè)工具箱,通過(guò)解析文檔為用戶提供需要抓取的數(shù)據(jù)。

    (3)解析完畢后,爬蟲(chóng)利用存儲(chǔ)端代理,訪問(wèn)數(shù)據(jù)存儲(chǔ)方法,將解析的數(shù)據(jù)發(fā)送到存儲(chǔ)模塊,進(jìn)行微博數(shù)據(jù)的存儲(chǔ)。

    (4)爬蟲(chóng)節(jié)點(diǎn)爬取完一個(gè)客戶的微博數(shù)據(jù)后,通知調(diào)度服務(wù)器爬取完畢,同時(shí)會(huì)重新獲取新的用戶ID,重新進(jìn)行爬取。

    3 系統(tǒng)部署與運(yùn)行

    實(shí)驗(yàn)采用了5臺(tái)機(jī)器,圖5為實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)鋱D。各機(jī)器均為L(zhǎng)inux環(huán)境,通過(guò)無(wú)線路由器TL-WR841N(通過(guò)100 Mbps WAN口連至Internet)通信。各機(jī)器的具體配置如表2所示。

    表2 系統(tǒng)部署

    實(shí)驗(yàn)中,調(diào)度模塊部署在機(jī)器a上,機(jī)器b用于存儲(chǔ)微博數(shù)據(jù),其余3臺(tái)機(jī)器為爬蟲(chóng)節(jié)點(diǎn),用于爬取微博數(shù)據(jù)。系統(tǒng)在爬蟲(chóng)節(jié)點(diǎn)配置了新浪微博賬號(hào)進(jìn)行登錄驗(yàn)證后,即可對(duì)數(shù)據(jù)進(jìn)行爬取。盡管新浪微博開(kāi)放平臺(tái)提供了訪問(wèn)接口,但基于該接口的爬蟲(chóng)在爬取數(shù)據(jù)時(shí),需要申請(qǐng)?jiān)L問(wèn)授權(quán)并受訪問(wèn)次數(shù)限制。與這種基于微博開(kāi)放平臺(tái)訪問(wèn)接口的爬蟲(chóng)不同,系統(tǒng)勿需授權(quán)申請(qǐng)且不受訪問(wèn)次數(shù)限制,通過(guò)在各個(gè)爬蟲(chóng)節(jié)點(diǎn)對(duì)訪問(wèn)網(wǎng)頁(yè)頻率進(jìn)行設(shè)置,能有效避免因爬取過(guò)快而導(dǎo)致的爬取失敗。實(shí)驗(yàn)了相同時(shí)間內(nèi)不同爬蟲(chóng)節(jié)點(diǎn)數(shù)下系統(tǒng)的爬取效果,如表3所示。由表3可以看到,隨著爬蟲(chóng)節(jié)點(diǎn)數(shù)的增加,系統(tǒng)爬取的微博數(shù)量亦在成倍增加。因此,系統(tǒng)只需增加新的爬蟲(chóng)節(jié)點(diǎn),勿需對(duì)已有系統(tǒng)進(jìn)行變更,就能極大提高系統(tǒng)的爬取能力,具有較強(qiáng)的適應(yīng)性和可擴(kuò)展性。

    表3 相同時(shí)間內(nèi)不同爬蟲(chóng)節(jié)點(diǎn)數(shù)下系統(tǒng)的爬取效果

    4 結(jié)束語(yǔ)

    結(jié)合消息中間件ICE設(shè)計(jì)實(shí)現(xiàn)一個(gè)分布式爬蟲(chóng)系統(tǒng)。文中介紹爬蟲(chóng)及ICE工作原理,討論基于ICE中間件的分布式爬蟲(chóng)的實(shí)現(xiàn)方法?;贗CE,將爬蟲(chóng)的各個(gè)模塊獨(dú)立開(kāi)來(lái),系統(tǒng)具有可擴(kuò)展性、適應(yīng)性。實(shí)驗(yàn)表明,爬蟲(chóng)系統(tǒng)能夠快速地從互聯(lián)網(wǎng)爬取微博數(shù)據(jù)。

    [1] 李林容.社交網(wǎng)絡(luò)的特性及其發(fā)展趨勢(shì)[J].新聞界,2010,(5):32-34.

    [2] 周德懋,李舟軍.高性能網(wǎng)絡(luò)爬蟲(chóng):研究綜述[J].計(jì)算機(jī)科學(xué),2009,36(8):26-29.

    [3] Brin S,Page L.The anatomy of a large-scale hypertextual Web search engine[J].Computer Networks& Isdn Systems,1998,30(98):107-117.

    [4] Heydon A,Najork M.Mercator:A scalable,extensible Web crawler[J].World Wide Web-internet& Web Information Systems,1999,2(4):219-229.

    [5] 北京大學(xué)天網(wǎng)搜索引擎[EB/OL].http://e.pku.edu.cn,2015-05-06.

    [6] 聶彤彤.中間件技術(shù)的發(fā)展與應(yīng)用[J].中國(guó)信息導(dǎo)報(bào),2005,(7):59-61.

    [7] Henning M,Spruiell M.Distributed Programming with Ice[R].Zeroc Inc Revision,2003.

    [8] Leader-us.ZeroC Ice權(quán)威指南[M].北京:電子工業(yè)出版社.

    [9] Apache HBase Reference Guide[EB/OL].http://hbase.apache.org/book.html,2015-06-08.

    [10] 劉裕,吳堅(jiān).中間件技術(shù)與ICE[J].微機(jī)發(fā)展,2004,14(10):37-39.

    [11] 張俊軍,章旋.ICE中間件技術(shù)及其應(yīng)用研究[J].計(jì)算機(jī)與現(xiàn)代化,2012(5):192-194.

    [12] Boldi P,Codenotti B,Santini M,et al.Ubi-Crawler:a scalable fully distributed Web crawler[J].Software Practice& Experience,2004,34(8):711-726.

    [13] 丁云亮,谷利澤,楊榆.基于分布式中間件ICE的應(yīng)用架構(gòu)研究[J].計(jì)算機(jī)應(yīng)用,2009,29(S2):27-28.

    [14] Zhang L,Yun ming Y E,Song H,et al.Design and Implementation of a Distributed High-Performance Web Crawler[J].Journal of Shanghai Jiaotong University,2004,38(1):59-61.

    [15] 葉允明,于水,馬范援,等.分布式Web Crawler的研究:結(jié)構(gòu)、算法和策略[J].電子學(xué)報(bào),2002,30(S1):2008-2011.

    [16] 許笑,張偉哲,張宏莉,等.廣域網(wǎng)分布式Web爬蟲(chóng)[J].軟件學(xué)報(bào),2010,21(5):1067-1082.

    猜你喜歡
    爬蟲(chóng)服務(wù)端中間件
    利用網(wǎng)絡(luò)爬蟲(chóng)技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說(shuō)
    基于Python的網(wǎng)絡(luò)爬蟲(chóng)和反爬蟲(chóng)技術(shù)研究
    RFID中間件技術(shù)及其應(yīng)用研究
    電子制作(2018年14期)2018-08-21 01:38:10
    云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
    基于VanConnect中間件的設(shè)計(jì)與開(kāi)發(fā)
    新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
    利用爬蟲(chóng)技術(shù)的Geo-Gnutel la VANET流量采集
    在Windows Server 2008上創(chuàng)建應(yīng)用
    大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
    電子制作(2017年9期)2017-04-17 03:00:46
    中間件在高速公路領(lǐng)域的應(yīng)用
    平塘县| 新竹县| 祁阳县| 陈巴尔虎旗| 平邑县| 吴堡县| 蒙城县| 施秉县| 高青县| 嘉定区| 南丹县| 株洲市| 阿尔山市| 新乡市| 玉环县| 珲春市| 广河县| 布尔津县| 镇沅| 大丰市| 平果县| 武邑县| 永平县| 邯郸县| 石河子市| 无极县| 安塞县| 德令哈市| 通化县| 伊川县| 松原市| 射阳县| 获嘉县| 绥芬河市| 赤水市| 孟州市| 清徐县| 合山市| 梧州市| 灵川县| 桑日县|