本發(fā)明涉及計算機(jī)應(yīng)用技術(shù)領(lǐng)域,具體地說是一種實用性強(qiáng)、對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集的方法。
背景技術(shù):
大數(shù)據(jù)指通過一般的軟件工具無法獲取管理和分析的大批量數(shù)據(jù)。當(dāng)前時代已進(jìn)入大數(shù)據(jù)時代,與互聯(lián)網(wǎng)的發(fā)明一樣,引發(fā)了一場新的信息技術(shù)領(lǐng)域的浪潮。通過大數(shù)據(jù)能夠幫助行業(yè)分析,為企業(yè)帶來新的商業(yè)價值與機(jī)會,同時也為企業(yè)的IT系統(tǒng)提出了挑戰(zhàn)。而要獲取來自互聯(lián)網(wǎng)的數(shù)據(jù),就必須開發(fā)一種數(shù)據(jù)采集服務(wù)方法并提供相應(yīng)的技術(shù)支持。
互聯(lián)網(wǎng)網(wǎng)頁數(shù)據(jù)具有分布廣、格式多樣、非結(jié)構(gòu)化等大數(shù)據(jù)的特點,因此需要用特定的方式對互聯(lián)網(wǎng)頁面的數(shù)據(jù)進(jìn)行采集、加工和存儲等工作?;ヂ?lián)網(wǎng)網(wǎng)頁數(shù)據(jù)采集就是一個獲取互聯(lián)網(wǎng)網(wǎng)頁內(nèi)容的過程,一般通過網(wǎng)絡(luò)爬蟲抓取,但是現(xiàn)有的抓取過程中經(jīng)常會出現(xiàn)重復(fù)抓取相同URL、抓取后的數(shù)據(jù)重復(fù)、抓取數(shù)據(jù)之間匹配度不高的情況,基于此,現(xiàn)提供一種對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集的方法,通過分析從網(wǎng)頁中抽取出用戶需要的數(shù)據(jù)內(nèi)容,并對抽取出來的數(shù)據(jù)內(nèi)容通過內(nèi)容和格式的轉(zhuǎn)換和加工處理,存儲用以滿足用戶的需求。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種實用性強(qiáng)、對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集的方法。
一種對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集的方法,其實現(xiàn)過程為:
首先爬取url隊列,為web爬蟲提供需要抽取數(shù)據(jù)的網(wǎng)站url地址,即將需要抽取數(shù)據(jù)的網(wǎng)站url存入爬取url隊列中;
web爬蟲從爬取url隊列中獲取需要抽取數(shù)據(jù)的網(wǎng)站的url信息;
web爬蟲從對應(yīng)的url頁面中獲取對應(yīng)的頁面內(nèi)容并抽取出用戶需要的數(shù)據(jù)信息;
web爬蟲把抽取到的數(shù)據(jù)寫入數(shù)據(jù)庫中;
設(shè)計數(shù)據(jù)處理模塊,通過該數(shù)據(jù)處理模塊對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行處理。
Web爬蟲依據(jù)用戶事前配置好的規(guī)則進(jìn)行數(shù)據(jù)采集工作,該配置好的規(guī)則包括網(wǎng)頁下載規(guī)則、網(wǎng)頁解析規(guī)則以及內(nèi)容抽取規(guī)則。
數(shù)據(jù)處理模塊對數(shù)據(jù)進(jìn)行處理的過程包括:
鏈接過濾,判斷當(dāng)前鏈接是否在已經(jīng)抓取過的鏈接集合里;
數(shù)據(jù)排重,排重即排除掉重復(fù)項,網(wǎng)頁排重通過比較兩個頁面之間的相似度來排除重復(fù)項;
數(shù)據(jù)整合,將采集到的數(shù)據(jù)通過關(guān)鍵字建立對應(yīng)關(guān)系,即關(guān)鍵字之間的匹配。
鏈接過濾的具體實現(xiàn)過程為:對于每一個抓取過的url,通過i個hash函數(shù)計算,得到i個值,然后與一個bit數(shù)組的i個位置的元素相互對應(yīng),在判斷某個url是否被抓取過時,首先用i個hash函數(shù)對該url計算得到i個值,再查詢大型的bit數(shù)組內(nèi)的i個位置的值,若全為1說明已經(jīng)被抓取過,否則為未抓取過。
數(shù)據(jù)排重通過以下算法實現(xiàn):輸入一個N維向量V,輸出一個C位的二進(jìn)制簽名S;初始化一個C維向量Q為零,C位的二進(jìn)制簽名S為零;對向量V中的每一個特征用Hash算法得到一個C位的散列值H;若H第i位是1,則Q的第i個元素加該元素的權(quán)重,否則,減去該元素的權(quán)重;若Q的第i個元素大于0,則S的第i位為l否則為0;返回簽名S;通過計算并判斷兩個簽名的海明距離,小于3則可認(rèn)為相似度比較高。
數(shù)據(jù)整合就是將處理后的網(wǎng)頁內(nèi)容用一組關(guān)鍵字進(jìn)行描述,這些關(guān)鍵字可以使用該網(wǎng)頁使用頻率最高的若干個詞匯,經(jīng)過關(guān)鍵字處理后進(jìn)行匹配達(dá)到數(shù)據(jù)整合的目的。
本發(fā)明的一種對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集的方法,具有以下優(yōu)點:
本發(fā)明提供的一種對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集的方法,在正常爬取網(wǎng)絡(luò)數(shù)據(jù)時,通過鏈接過濾、數(shù)據(jù)排重和整合的數(shù)據(jù)處理方式,將數(shù)據(jù)進(jìn)行處理,剔除重復(fù)的數(shù)據(jù),避免重復(fù)抓取,數(shù)據(jù)相互之間整合匹配度高,從而更好的滿足用戶需求,實用性強(qiáng),適用范圍廣泛,易于推廣。
具體實施方式
下面結(jié)合具體實施例對本發(fā)明作進(jìn)一步說明。
本發(fā)明的一種對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集的方法,首先依據(jù)用戶事前配置好的規(guī)則進(jìn)行數(shù)據(jù)采集工作,包括網(wǎng)頁下載規(guī)則和網(wǎng)頁解析規(guī)則以及內(nèi)容抽取規(guī)則等。
在本發(fā)明中,互聯(lián)網(wǎng)網(wǎng)頁大數(shù)據(jù)采集和處理的過程主要包括4個方面內(nèi)容:
1)web爬蟲。從網(wǎng)絡(luò)中抓取頁面內(nèi)容,從中抽取需要的數(shù)據(jù)內(nèi)容。
2)數(shù)據(jù)處理。對web爬蟲抽取的內(nèi)容進(jìn)行處理。
3)爬取url隊列。為web爬蟲提供需要抽取數(shù)據(jù)的網(wǎng)站url地址。
4)數(shù)據(jù)。數(shù)據(jù)包含三個方面:①需要抓取的數(shù)據(jù)網(wǎng)站的url信息、②web從網(wǎng)頁中抽取出來的數(shù)據(jù)、③經(jīng)過數(shù)據(jù)處理的數(shù)據(jù)。
整個互聯(lián)網(wǎng)頁面數(shù)據(jù)采集和處理的流程如下:
將需要抽取數(shù)據(jù)的網(wǎng)站url存入爬取url隊列中。
web爬蟲從爬取url隊列中獲取需要抽取數(shù)據(jù)的網(wǎng)站的url信息。
web爬蟲從對應(yīng)的url頁面中獲取對應(yīng)的頁面內(nèi)容并抽取出用戶需要的數(shù)據(jù)信息。
web爬蟲把抽取到的數(shù)據(jù)寫入數(shù)據(jù)庫中。
數(shù)據(jù)處理模塊對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行清理處理。
上述數(shù)據(jù)處理過程中,需要進(jìn)行以下操作:
鏈接過濾。實質(zhì)是判斷當(dāng)前鏈接是否在已經(jīng)抓取過的鏈接集合里。在對網(wǎng)頁的大數(shù)據(jù)采集過程中,可通過布隆過濾器實現(xiàn)對鏈接的過濾操作。
數(shù)據(jù)排重。排重即排除掉重復(fù)項的過程,網(wǎng)頁排重可以通過比較兩個頁面之間的相似度來排除重復(fù)項。
數(shù)據(jù)整合。就是將采集到的數(shù)據(jù)通過某組關(guān)鍵字建立對應(yīng)關(guān)系。實質(zhì)是關(guān)鍵字之間的匹配。
更加具體的,上述三種處理操作為:
鏈接過濾。其實質(zhì)是判斷當(dāng)前鏈接是否在已經(jīng)抓取過的鏈接集合里。在對網(wǎng)頁的大數(shù)據(jù)采集過程中,通過過濾器實現(xiàn)對鏈接的過濾操作。
具體方法是,對于每一個抓取過的url,通過i個hash函數(shù)計算,得到i個值,然后與一個大型bit數(shù)組的這i個位置的元素相互對應(yīng),在判斷某個url是否被抓取過時,首先用i個hash函數(shù)對這個url計算得到i個值,再查詢大型的bit數(shù)組內(nèi)的這i個位置的值,若全為1說明已經(jīng)被抓取過,否則為未抓取過。
數(shù)據(jù)排重。排重是排除掉重復(fù)項的過程,網(wǎng)頁排重通過比較兩個頁面之間的相似度來排除重復(fù)項。采用以下算法,提高排重效率,系統(tǒng)可以容納更多的數(shù)據(jù)量。
思路如下:輸入為一個N維向量V,輸出是一個C位的二進(jìn)制簽名S。初始化一個C維向量Q為零,C位的位二進(jìn)制簽名S為零。對向量V中的每一個特征用Hash算法得到一個C位的散列值H。若H第i位是1,則Q的第i個元素加該元素的權(quán)重,否則,減去該元素的權(quán)重。若Q的第i個元素大于0,則S的第i位為l否則為0。返回簽名S。通過計算并判斷兩個簽名的海明距離,小于3則可認(rèn)為相似度比較高。
數(shù)據(jù)整合。就是將采集到的數(shù)據(jù)通過某組關(guān)鍵字建立對應(yīng)關(guān)系。其實質(zhì)是關(guān)鍵字之間的匹配。將處理后的網(wǎng)頁內(nèi)容用一組關(guān)鍵字進(jìn)行描述,這些關(guān)鍵字可以使用該網(wǎng)頁使用頻率最高的若干個詞匯。經(jīng)過關(guān)鍵字處理后進(jìn)行匹配達(dá)到數(shù)據(jù)整合的目的。
上述具體實施方式僅是本發(fā)明的具體個案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實施方式,任何符合本發(fā)明的一種對互聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行采集的方法的權(quán)利要求書的且任何所述技術(shù)領(lǐng)域的普通技術(shù)人員對其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。