一種基于分布式網(wǎng)絡(luò)爬蟲的內(nèi)容聚合方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)頁(yè)爬蟲相關(guān)技術(shù)領(lǐng)域,特別涉及一種基于分布式網(wǎng)絡(luò)爬蟲的內(nèi)容聚合方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的不斷發(fā)展,大數(shù)據(jù)時(shí)代迎面而來(lái),海量數(shù)據(jù)的價(jià)值也將得到更多體現(xiàn)。由于海量流媒體視頻資源及豐富的網(wǎng)頁(yè)內(nèi)容等互聯(lián)網(wǎng)信息的日益遞增,讓特定用戶在有限的碎片時(shí)間段通過手持設(shè)備很難準(zhǔn)確有效獲取自身所需的網(wǎng)絡(luò)數(shù)據(jù)。而現(xiàn)有的內(nèi)容聚合技術(shù)大多以基于上層架構(gòu)的方式進(jìn)行仿真模擬證明其內(nèi)容聚合系統(tǒng)的優(yōu)越性,缺少對(duì)真實(shí)網(wǎng)絡(luò)環(huán)境及目標(biāo)用戶群對(duì)應(yīng)的特定信息進(jìn)行實(shí)現(xiàn)應(yīng)用。
[0003]傳統(tǒng)的內(nèi)容聚合方法所選擇的過濾條件過于廣泛,并且無(wú)法進(jìn)行大批量定制化獲取信息,難以保證信息的及時(shí)性與主題的相關(guān)性。對(duì)獲取信息端規(guī)則的快速無(wú)規(guī)律變化無(wú)法適應(yīng),造成信息來(lái)源渠道的短暫性,無(wú)法長(zhǎng)時(shí)間進(jìn)行信息獲取。對(duì)互聯(lián)網(wǎng)上多個(gè)來(lái)源不同的相同信息無(wú)法區(qū)分,造成信息的重復(fù)性及冗余性,降低了目標(biāo)用戶獲取信息的高效性。因此對(duì)于如何提高內(nèi)容聚合平臺(tái)的信息獲取持久化、信息的去冗余度、信息的聚合分類等值得研究。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)現(xiàn)了一種基于分布式網(wǎng)絡(luò)爬蟲的內(nèi)容聚合方法,目的在于解決現(xiàn)有技術(shù)中網(wǎng)絡(luò)爬蟲技術(shù)不能有效對(duì)定制化大批量的網(wǎng)絡(luò)信息進(jìn)行聚合分類的問題。
[0005]本發(fā)明提供的一種基于分布式網(wǎng)絡(luò)爬蟲的內(nèi)容聚合方法,該方法包括以下過程: 步驟一,抓取目標(biāo)信息,首先將不同的爬蟲平臺(tái)設(shè)置在不同的設(shè)備上,向爬取的網(wǎng)絡(luò)信息來(lái)源端發(fā)送請(qǐng)求,爬蟲平臺(tái)根據(jù)用戶所需求的目標(biāo)信息制定爬取規(guī)則,抓取目標(biāo)用戶所感興趣的信息;
步驟二,爬取內(nèi)容信息相似度檢測(cè),將所述爬取得到的網(wǎng)絡(luò)信息進(jìn)行處理,基于實(shí)時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)傳遞及其轉(zhuǎn)換方法結(jié)合局部敏感哈希(LSH)方法,進(jìn)行相似度檢測(cè)從而降低信息的冗余度;
步驟三,爬取信息聚合分類,在步驟二的基礎(chǔ)上,系統(tǒng)對(duì)篩選過的信息按類別、熱度、關(guān)鍵字進(jìn)行分類排序,并展示在用戶設(shè)備上。
[0006]在所述步驟一中,對(duì)于爬取平臺(tái)的設(shè)置還包括以下步驟:
在任務(wù)開始前對(duì)爬蟲平臺(tái)進(jìn)行部署,并配置爬蟲屬性,通過網(wǎng)頁(yè)分析算法過濾與用戶檢索無(wú)關(guān)的鏈接,保留有用的鏈接放到待抓取的隊(duì)列中,在過濾過程中,后臺(tái)服務(wù)器首先將網(wǎng)頁(yè)內(nèi)容轉(zhuǎn)化成文本形式并通過基于文本的網(wǎng)頁(yè)分析算法從隊(duì)列中選擇下一步要抓取的url,,重復(fù)以上步驟,遍歷整個(gè)頁(yè)面,直到滿足程序的停止條件。
[0007]所述對(duì)爬蟲進(jìn)行部署包括對(duì)爬蟲的服務(wù)配置和任務(wù)配置。
[0008]所述步驟一具體包括: 步驟1.1,將根地址url按照其業(yè)務(wù)類別分為若干大類,選擇與目標(biāo)信息所對(duì)應(yīng)的某一大類進(jìn)行信息爬??;
步驟1.2,根據(jù)所述目標(biāo)信息對(duì)應(yīng)的大類url配置爬取目標(biāo)地址,進(jìn)入各個(gè)頁(yè)面獲取詳細(xì)標(biāo)簽,爬取具體內(nèi)容。
[0009]所述步驟一還包括步驟1.3,進(jìn)行到所述步驟1.2時(shí),如果所述目標(biāo)地址頁(yè)面內(nèi)對(duì)信息設(shè)置有更詳細(xì)的分類,進(jìn)入各小類頁(yè)面獲取詳細(xì)標(biāo)簽,爬取具體內(nèi)容,且重復(fù)步驟1.3,直到爬取到攜帶具體內(nèi)容為止。
[0010]所述步驟二具體包括:
步驟2.1,將所述爬取得到的網(wǎng)絡(luò)信息進(jìn)行處理,替換信息中的空白串及多媒體元素,將信息中所含的圖片及視頻資源提取出來(lái)并替換成對(duì)應(yīng)的文本語(yǔ)言;
步驟2.2,將文本中的任意長(zhǎng)度為k的子串定義為k-shingle,則每條信息可以表示成在文本中出現(xiàn)一次或者多次的k-shingle集合;需要將所述集合替換成以較小規(guī)模的簽名表示的小集合,通過比較信息的簽名集合估計(jì)實(shí)際集合的相似度;
步驟2.3,對(duì)信息進(jìn)行多次局部敏感哈希處理,使得相似項(xiàng)會(huì)比不相似項(xiàng)更可能哈希到同一桶中,將至少有一次哈希到同一桶的信息對(duì)作為是候選對(duì),僅對(duì)這些候選對(duì)進(jìn)行相似度檢測(cè),將相似度達(dá)到設(shè)定閾值的信息進(jìn)行篩選刪除,降低信息的冗余度。
[0011]本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
本發(fā)明實(shí)施例所提供的方法,在獲取到所用信息后進(jìn)行相似度對(duì)比,提出冗余信息,獲得所述冗余度較低的信息數(shù)據(jù)。該方法根據(jù)實(shí)際網(wǎng)絡(luò)中獲取得到的數(shù)據(jù)信息進(jìn)行LSH進(jìn)行相似度對(duì)比得到對(duì)比結(jié)果,與現(xiàn)有技術(shù)中采用傳統(tǒng)的整條數(shù)據(jù)查重方式得到的對(duì)比結(jié)果,其計(jì)算速度更快、相似度對(duì)比更精確。
【附圖說明】
[0012]以下將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說明:
圖1為本發(fā)明所提供的網(wǎng)頁(yè)爬蟲爬取規(guī)則的流程圖;
圖2為本發(fā)明所提供的爬取內(nèi)容信息相似度檢測(cè)過程的流程圖;
圖3為本發(fā)明所提供的爬取信息聚合分類過程的流程圖;
圖4為本發(fā)明所提供的爬蟲分布式部署方法的流程圖;
圖5為本發(fā)明所提供的爬蟲分布式部署系統(tǒng)結(jié)構(gòu)示意圖;
圖6為本發(fā)明所提供的基于分布式網(wǎng)絡(luò)爬蟲的內(nèi)容聚合系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0013]本發(fā)明提供一種基于分布式網(wǎng)絡(luò)爬蟲的內(nèi)容聚合方法,為使本發(fā)明的目的,技術(shù)方案及效果更加清楚,明確,以及參照附圖并舉實(shí)例對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0014]本發(fā)明提供的內(nèi)容聚合系統(tǒng)結(jié)構(gòu)示意圖如圖6所示,該系統(tǒng)包括:
用戶界面:用戶通過圖形用戶界面對(duì)系統(tǒng)進(jìn)行管理和任務(wù)調(diào)度,調(diào)度服務(wù)由各個(gè)節(jié)點(diǎn)爬蟲負(fù)責(zé),主要提供包括爬蟲任務(wù)啟動(dòng)、任務(wù)停止及任務(wù)狀態(tài)服務(wù);圖形用戶界面為內(nèi)容聚合平臺(tái)提供給用戶的可視化操作界面,爬蟲任務(wù)管理平臺(tái); 該界面通過調(diào)用底層的服務(wù)接口,作為管理爬蟲節(jié)點(diǎn)任務(wù)的屬性狀態(tài)及日志的一個(gè)中心平臺(tái),使得系統(tǒng)管理人員提供易用、直觀的控制平臺(tái)。
[0015]內(nèi)容聚合分類模塊:通過內(nèi)容聚合分類模塊提供爬蟲任務(wù)相關(guān)命令,控制爬蟲任務(wù)具體狀態(tài)。根據(jù)定制化具體要求,詳細(xì)設(shè)定爬取范圍,動(dòng)態(tài)跟蹤爬取狀態(tài),提供爬蟲任務(wù)相關(guān)的數(shù)據(jù)的寫入、更新服務(wù)獲取爬取具體內(nèi)容。用于在所述信息獲取指令模塊獲取到所需的數(shù)據(jù)后,從數(shù)據(jù)庫(kù)抓取獲得的數(shù)據(jù)信息,成為待處理數(shù)據(jù)。
[0016]信息相似度檢測(cè)模塊:在獲取到所用信息后進(jìn)行相似度對(duì)比,剔除冗余信息,獲得所述冗余度較低的信息數(shù)據(jù)。該模塊將底層節(jié)點(diǎn)爬蟲的信息進(jìn)行查重處理,使得內(nèi)容聚合系統(tǒng)中的信息冗余度降低。
[0017]信息預(yù)處理模塊:在上述所述信息相似度檢測(cè)之后,深入研究網(wǎng)頁(yè)內(nèi)容,通過基于文本的網(wǎng)頁(yè)分析算法,截取網(wǎng)頁(yè)文本信息,聚合平臺(tái)會(huì)根據(jù)文本內(nèi)容自動(dòng)獲取對(duì)應(yīng)信息,諸如標(biāo)題,正文部分等,從而填充對(duì)應(yīng)空白框架,由后臺(tái)傳輸實(shí)現(xiàn)手持端對(duì)應(yīng)展示。
[0018]基于上述系統(tǒng),本發(fā)明所提供的一種基于分布式網(wǎng)絡(luò)爬蟲的內(nèi)容聚合方法包括以下過程:
步驟一,抓取目標(biāo)信息,首先將不同的爬蟲平臺(tái)設(shè)置在不同的設(shè)備上,向爬取的網(wǎng)絡(luò)信息來(lái)源端發(fā)送請(qǐng)求,爬蟲平臺(tái)根據(jù)用戶所需求的目標(biāo)信息制定爬取規(guī)則,抓取目標(biāo)用戶所感興趣的信息;
步驟二,爬取內(nèi)容信息相似度檢測(cè),將所述爬取得到的網(wǎng)絡(luò)信息進(jìn)行處理,基于數(shù)據(jù)庫(kù)數(shù)據(jù)傳遞進(jìn)行改進(jìn),結(jié)合局部敏感哈希(LSH)方法,進(jìn)行相似度檢測(cè)從而降低信息的冗余度;
步驟三,爬取信息聚合分類,在步驟二的基礎(chǔ)上,系統(tǒng)對(duì)篩選過的信息按類別、熱度、關(guān)鍵字進(jìn)行分類排序,并展示在用戶設(shè)備上。
[0019]在開始任務(wù)前,首先對(duì)爬蟲的部署與配置進(jìn)行介紹,本發(fā)明指出的爬蟲分布式部署如圖4所示,該過程具體包括:
分布式爬蟲配置包括爬蟲服務(wù)配置和爬蟲任務(wù)配置;爬蟲服務(wù)配置,保障服務(wù)依賴的資源能夠正確獲取,保障任務(wù)的正常運(yùn)行;爬蟲服務(wù)配置對(duì)任務(wù)屬性進(jìn)行配置,如頁(yè)面下載間隔時(shí)間、任務(wù)線程數(shù),任務(wù)執(zhí)行頻次等。
[0020]分布式爬蟲部署,具體的,以web服務(wù)為主進(jìn)行部署,需安裝Tomcat容器,最終發(fā)布為war包,每個(gè)war部署后地理提供服務(wù)。在實(shí)際部署中,一臺(tái)物理設(shè)備部署一個(gè)爬蟲節(jié)點(diǎn),為測(cè)試方便以及資源充分利用,可在一個(gè)物理服務(wù)器上部署多個(gè)容器,分配不同端口提供服務(wù)。IP地址和端口唯一確定一個(gè)爬蟲節(jié)點(diǎn)。
[0021]任務(wù)集中管理平臺(tái),其主要包含任務(wù)調(diào)度方式,及上述爬蟲聚合管理系統(tǒng),其連接各個(gè)爬蟲邊緣節(jié)點(diǎn),進(jìn)行系統(tǒng)任務(wù)調(diào)度,控制各個(gè)節(jié)點(diǎn)狀態(tài),對(duì)任務(wù)進(jìn)行管理和控制。
[0022]更加具體的,爬蟲分布式部署系統(tǒng)結(jié)構(gòu)示意圖如圖5所示:
該示意圖呈現(xiàn)爬蟲分布式部署系統(tǒng)結(jié)構(gòu),其中任務(wù)集中管理平臺(tái)就是上述所說的內(nèi)容聚合管理平臺(tái),它連接各個(gè)爬蟲邊緣節(jié)點(diǎn),可實(shí)現(xiàn)對(duì)爬蟲系統(tǒng)的任務(wù)調(diào)度,控制各個(gè)節(jié)點(diǎn)狀態(tài),管理者可選擇對(duì)應(yīng)工作節(jié)點(diǎn),對(duì)任務(wù)進(jìn)行管理和控制。
[0023]爬蟲邊緣節(jié)點(diǎn)代表部署在不同設(shè)備上的爬蟲系統(tǒng),體現(xiàn)分布式部署。不同的設(shè)備代表不同的爬取任務(wù),同時(shí)節(jié)點(diǎn)上的任務(wù)分配也可交叉實(shí)現(xiàn)。由于每個(gè)設(shè)備之間的任務(wù)是獨(dú)立的,相互間沒有一定依賴,這就充分利用有限資源,提高任務(wù)執(zhí)行速率。
[0024]開始任務(wù)時(shí),第一步抓取目標(biāo)信息的流程圖如圖1所示,具體流程如下:
步驟101:爬蟲向爬取的網(wǎng)絡(luò)信息源站端發(fā)送請(qǐng)求;
步驟102:根據(jù)各個(gè)源站的不同業(yè)務(wù)類別配置相應(yīng)爬取規(guī)則,該規(guī)則基于webmagic框架,互聯(lián)網(wǎng)中本身就存在眾多網(wǎng)絡(luò)信息源站,即爬取根地址(初始url)。以爬取網(wǎng)頁(yè)url為根url,基于webmagic框架,根據(jù)網(wǎng)頁(yè)源代碼從源站獲取得到各類有效信息,進(jìn)行相關(guān)配置。如圖片類,則詳細(xì)解析網(wǎng)頁(yè)格式,將圖片按標(biāo)簽排序并作記號(hào),通過后續(xù)步驟將圖片按記號(hào)順序展示在內(nèi)容聚合平臺(tái)的頁(yè)面上;視頻類