一種分布式網(wǎng)絡(luò)信息結(jié)構(gòu)化處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及了網(wǎng)絡(luò)信息采集領(lǐng)域的一種網(wǎng)絡(luò)信息處理方法,特別是涉及了一種分布式網(wǎng)絡(luò)信息結(jié)構(gòu)化采集處理方法。
【背景技術(shù)】
[0002]分布式系統(tǒng)是通過將廉價(jià)的計(jì)算集群有效的組織起來,執(zhí)行大規(guī)模數(shù)據(jù)運(yùn)算和存儲(chǔ)的系統(tǒng)。
[0003]分布式系統(tǒng)不同于單機(jī)系統(tǒng),利用計(jì)算機(jī)集群進(jìn)行數(shù)據(jù)運(yùn)算和存儲(chǔ)要平衡單節(jié)點(diǎn)計(jì)算能力和節(jié)點(diǎn)間的通信之間的代價(jià),同時(shí)還要考慮集群中節(jié)點(diǎn)故障導(dǎo)致的系統(tǒng)有效性和數(shù)據(jù)的可恢復(fù)性等問題。Hadoop分布式處理與HDFS分布式文件系統(tǒng)是基于Google提出的Map/Reduce計(jì)算模型設(shè)計(jì)開發(fā)的開源分布式運(yùn)算與存儲(chǔ)系統(tǒng)。由于其有效的解決了分布式系統(tǒng)中的問題以及其架構(gòu)的簡(jiǎn)潔通用性,在很多領(lǐng)域都得到了廣泛的應(yīng)用。
[0004]結(jié)構(gòu)化聚類方法是聚類方法中的一種,與按內(nèi)容進(jìn)行聚類的方法不同,結(jié)構(gòu)化聚類強(qiáng)調(diào)的是按照結(jié)構(gòu)進(jìn)行聚類,這就需要不同的相似度衡量方法。樹編輯距離方法是一種衡量樹狀結(jié)構(gòu)相似度的方法,將一棵樹轉(zhuǎn)換為另一棵樹意味著在兩棵樹之間進(jìn)行一系列的節(jié)點(diǎn)的插入,刪除和替換,每一次操作耗費(fèi)一定成本。若兩棵樹的結(jié)構(gòu)差異大,意味著操作成本高,操作成本低則表明樹的結(jié)構(gòu)差異小。因此樹的編輯距離表示的是兩棵樹轉(zhuǎn)換所需要的最小成本。
[0005]網(wǎng)絡(luò)信息采集通常也叫網(wǎng)絡(luò)爬蟲,被廣泛用于互聯(lián)網(wǎng)搜索引擎或其他類似網(wǎng)站,以獲取或更新這些網(wǎng)站的內(nèi)容和檢索方式。它可以自動(dòng)采集所有其能夠訪問到的頁面內(nèi)容,以供搜索引擎等做進(jìn)一步的處理。
[0006]現(xiàn)有的網(wǎng)絡(luò)爬蟲抓取到的信息是以原始網(wǎng)頁的形式保存于存儲(chǔ)系統(tǒng)中。這樣的存儲(chǔ)方式存在以下缺點(diǎn),一是以原始網(wǎng)頁的形式存儲(chǔ)需要較大的存儲(chǔ)空間;二是存儲(chǔ)的信息中有大量的不相關(guān)信息,如廣告等;三是以網(wǎng)頁的形式對(duì)信息進(jìn)行保存是一種半結(jié)構(gòu)化的方式,相對(duì)于結(jié)構(gòu)化的存儲(chǔ)方式,半結(jié)構(gòu)化的存儲(chǔ)方式會(huì)給進(jìn)一步信息的使用造成一定的障礙。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于針對(duì)現(xiàn)有網(wǎng)絡(luò)信息采集技術(shù)的不足,提供了一種分布式網(wǎng)絡(luò)信息結(jié)構(gòu)化采集處理方法。
[0008]本發(fā)明采用的技術(shù)方案包括以下步驟:
[0009]I)對(duì)網(wǎng)絡(luò)信息采集任務(wù)進(jìn)行配置,將用戶感興趣的網(wǎng)頁進(jìn)行分類保存,作為目標(biāo)網(wǎng)頁;
[0010]2)對(duì)網(wǎng)絡(luò)信息進(jìn)行采集,通過多個(gè)map/reduce過程共同協(xié)作采集網(wǎng)頁并進(jìn)行結(jié)構(gòu)化處理,保存在HDFS文件系統(tǒng)中;
[0011]3)將結(jié)構(gòu)化處理后的網(wǎng)頁采用樹編輯距離的方式,進(jìn)行結(jié)構(gòu)化聚類;
[0012]4)對(duì)聚類后的網(wǎng)頁信息進(jìn)行結(jié)構(gòu)化提取,保存到數(shù)據(jù)庫中。
[0013]所述的步驟2)具體包括:
[0014]2.1)獲取URL種子文件,將URL種子文件集合保存至HDFS文件系統(tǒng)的待抓取文件夾中,待抓取文件夾存放有要抓取的URL,并設(shè)置初始的層序數(shù)為I ;
[0015]2.2)判斷待抓取文件夾中是否為空,若是,則跳轉(zhuǎn)到步驟2.7);否則,進(jìn)行下一步驟 2.3);
[0016]2.3)通過map/reduce過程對(duì)HDFS文件系統(tǒng)中的各個(gè)URL種子文件對(duì)應(yīng)的網(wǎng)頁進(jìn)行采集,并保存在HDFS文件系統(tǒng)中網(wǎng)頁存儲(chǔ)文件夾存放,網(wǎng)頁存儲(chǔ)文件夾存放有未經(jīng)加工的網(wǎng)頁;
[0017]2.4)再通過map/reduce過程對(duì)網(wǎng)頁存儲(chǔ)文件夾中已抓取的網(wǎng)頁從中提取解析出新的URL,并將新的URL保存在HDFS文件系統(tǒng)的臨時(shí)文件夾中,臨時(shí)文件夾存放有解析出來的 URL ;
[0018]2.5)通過map/reduce過程優(yōu)化臨時(shí)文件夾,過濾其中的URL,將重復(fù)的URL去掉,然后將結(jié)果在HDFS文件系統(tǒng)的待抓取文件夾中進(jìn)行更新;
[0019]2.6)將層序數(shù)+1;
[0020]2.7)判斷層序數(shù),如果當(dāng)前的層序數(shù)大于抓取深度值DeptJW進(jìn)入步驟2.7),否則跳轉(zhuǎn)到步驟2.2);
[0021]2.7)通過map/reduce的過程將上述步驟得到的多個(gè)網(wǎng)頁存儲(chǔ)文件夾合并為一個(gè)網(wǎng)頁存儲(chǔ)文件夾,并去掉其中重復(fù)的網(wǎng)頁。
[0022]所述的步驟3)通過map/reduce過程進(jìn)行聚類,具體步驟如下:
[0023]3.1)在map階段,對(duì)于步驟2)得到的合并后的網(wǎng)頁存儲(chǔ)文件夾中的每一個(gè)網(wǎng)頁,利用樹編輯距離方法,分別計(jì)算每一個(gè)網(wǎng)頁的標(biāo)簽樹了1?民與每一個(gè)所述目標(biāo)網(wǎng)頁C i的標(biāo)簽樹TREEci之間的樹編輯距離DIS α,得到樹編輯距離集合{DISC1,DISc2, DISc3,…,DIScJ,并生成鍵值對(duì)〈C;,WEB〉,然后從樹編輯距離集合中選取最小樹編輯距離DISemin,將最小樹編輯距離DISemin對(duì)應(yīng)的鍵值對(duì)〈C min,WEB>傳給reduce階段;
[0024]3.2)在reduce階段,根據(jù)上述鍵值對(duì)〈Q,WEB>中鍵值將具有相同鍵的網(wǎng)頁合并到一個(gè)文件DOCei中作為同一類網(wǎng)頁,并保存在HDFS文件系統(tǒng)的結(jié)果文件夾中,每一個(gè)文件DOCa保存了具有相同網(wǎng)頁結(jié)構(gòu)的網(wǎng)頁,得到結(jié)構(gòu)化網(wǎng)頁聚類結(jié)果{DOCa,DOCc2, DOCc3,…,DOCqJ,完成網(wǎng)頁的結(jié)構(gòu)化聚類。
[0025]所述的步驟4)根據(jù)步驟3)中得到的結(jié)構(gòu)化網(wǎng)頁聚類結(jié)果{D0Ca,DOCc2,DOCra,…,DOCqJ,對(duì)每一類網(wǎng)頁進(jìn)行提取,將網(wǎng)頁中的信息提取出來保存到數(shù)據(jù)庫中。
[0026]將所述網(wǎng)頁中對(duì)應(yīng)的標(biāo)簽樹的節(jié)點(diǎn)提取到數(shù)據(jù)庫中對(duì)應(yīng)的字段。
[0027]所述不同類的網(wǎng)頁采用不同的提取方式。
[0028]步驟I)對(duì)網(wǎng)絡(luò)信息采集任務(wù)配置,是交互的接口。與搜索引擎的爬蟲不同,本發(fā)明主要目的在于對(duì)于網(wǎng)絡(luò)特定的信息源進(jìn)行監(jiān)控。作為信息源的用戶感興趣的網(wǎng)頁可按內(nèi)容類型分為文本信息、圖片信息和視頻信息等,也可按內(nèi)容屬性分為新聞信息和廣告信息等。同時(shí),不同信息源的更新頻率也不盡相同。通過網(wǎng)絡(luò)信息采集任務(wù)配置,可確定采集的信息源的信息,從而實(shí)現(xiàn)對(duì)不同類型信息源采取不同的采集方法。
[0029]步驟2)基于Hadoop分布式處理以及HDFS分布式文件系統(tǒng),對(duì)步驟I)中定義的網(wǎng)絡(luò)采集任務(wù)進(jìn)行分布式抓取。
[0030]步驟3)進(jìn)行網(wǎng)頁結(jié)構(gòu)化聚類,步驟2)抓取下來的網(wǎng)頁還是以半結(jié)構(gòu)化的文件形式存儲(chǔ)在HDFS中,不能直接提取到數(shù)據(jù)庫中。步驟3)采用樹編輯距離的方式,對(duì)網(wǎng)頁按其結(jié)構(gòu)進(jìn)行聚類。網(wǎng)頁都是采用HTML進(jìn)行編寫,單個(gè)HTML文件可抽象成一個(gè)標(biāo)簽樹的形式,具有相同信息的網(wǎng)頁,其標(biāo)簽樹也具有相似甚至相同的結(jié)構(gòu)。為了衡量標(biāo)簽樹的相似性,本發(fā)明采用了樹編輯距離的方法,將步驟2)抓取到的網(wǎng)頁進(jìn)行分類。
[0031]步驟4)對(duì)網(wǎng)頁信息結(jié)構(gòu)化提取,根據(jù)步驟3)中結(jié)構(gòu)化聚類的結(jié)果,以及步驟I)中對(duì)每一類網(wǎng)頁的提取方式,將網(wǎng)頁中的信息提取出來保存到數(shù)據(jù)庫中。
[0032]本發(fā)明具有的有益效果是:
[0033]本發(fā)明采用了分布式的架構(gòu),利用廉價(jià)的計(jì)算機(jī)集群的計(jì)算以及存儲(chǔ)能力來處理數(shù)據(jù)量龐大的網(wǎng)絡(luò)數(shù)據(jù);采用了樹編輯距離的網(wǎng)頁結(jié)構(gòu)化聚類方式,有效的對(duì)網(wǎng)頁進(jìn)行分類;采用了結(jié)構(gòu)化的方式對(duì)網(wǎng)絡(luò)信息進(jìn)行提取并保存,方便了對(duì)網(wǎng)絡(luò)信息的進(jìn)一步分析處理。
【附圖說明】
[0034]圖1是本發(fā)明實(shí)施步驟流程圖。
[0035]圖2是本發(fā)明步驟3.1)中的網(wǎng)頁標(biāo)簽樹。
【具體實(shí)施方式】
[0036]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
[0037]如圖1所示,本發(fā)明包括以下步驟:
[0038]I)對(duì)網(wǎng)絡(luò)信息采集任務(wù)進(jìn)行配置,將用戶感興趣的網(wǎng)頁進(jìn)行分類保存,作為目標(biāo)網(wǎng)頁;可得到后續(xù)步驟用來聚類的目標(biāo)網(wǎng)頁集合IC1, c2, C3,…,CJ ;本發(fā)明的目標(biāo)網(wǎng)頁分類保存時(shí),可對(duì)同一網(wǎng)站不同信息類型進(jìn)行分類,比如同一網(wǎng)站中可能存在信息類可分為新聞?lì)悺a(chǎn)品數(shù)據(jù)類和圖片類等。
[0039]2)對(duì)網(wǎng)絡(luò)信息進(jìn)行采集,通過多個(gè)map/reduce過程共同協(xié)作采集網(wǎng)頁并進(jìn)行結(jié)構(gòu)化處理,保存在HDFS文件系統(tǒng)中。
[0040]步驟2)基于Hadoop分布式處理以及HDFS分布式文件系統(tǒng),對(duì)步驟I中定義的網(wǎng)絡(luò)采集任務(wù)進(jìn)行分布式抓取。
[0041]2.1)獲取URL種子文件,將URL種子文件集合保存至HDFS文件系統(tǒng)的待抓取文件夾中,待抓取文件夾存放有要抓取的URL,并設(shè)置初始的層序數(shù)為I ;
[0042]2.2)判斷待抓取文件夾中是否為空,若是,則跳轉(zhuǎn)到步驟2.7);否則,進(jìn)行下一步驟 2.3);
[0043]2.3)通過map/reduce過程對(duì)HDFS文件系統(tǒng)中的各個(gè)URL種子文件對(duì)應(yīng)的網(wǎng)頁進(jìn)行采集,并保存在HDFS文件系統(tǒng)中網(wǎng)頁存儲(chǔ)文件夾存放,網(wǎng)頁存儲(chǔ)文件夾存放有未經(jīng)加工的網(wǎng)頁;
[0044]2.4)再通過map/reduce過程對(duì)網(wǎng)頁存儲(chǔ)文件夾中已抓取的網(wǎng)頁從中提取并解析出新的URL,并將新的URL保存在HDFS文件系統(tǒng)的臨時(shí)文件夾中,臨時(shí)文件夾存放有解析得到的URL ;
[0045]2.5)通過map/reduce過程優(yōu)