通過(guò)網(wǎng)絡(luò)爬蟲采集大數(shù)據(jù)_第1頁(yè)
通過(guò)網(wǎng)絡(luò)爬蟲采集大數(shù)據(jù)_第2頁(yè)
通過(guò)網(wǎng)絡(luò)爬蟲采集大數(shù)據(jù)_第3頁(yè)
通過(guò)網(wǎng)絡(luò)爬蟲采集大數(shù)據(jù)_第4頁(yè)
通過(guò)網(wǎng)絡(luò)爬蟲采集大數(shù)據(jù)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

通過(guò)網(wǎng)絡(luò)爬蟲采集大數(shù)據(jù)網(wǎng)絡(luò)數(shù)據(jù)采集是指通過(guò)網(wǎng)絡(luò)爬蟲或網(wǎng)站公開API等方式從網(wǎng)站上獲取數(shù)據(jù)信息。該方法可以將非結(jié)構(gòu)化數(shù)據(jù)從網(wǎng)頁(yè)中抽取出來(lái),將其存儲(chǔ)為統(tǒng)一的本地?cái)?shù)據(jù)文件,并以結(jié)構(gòu)化的方式存儲(chǔ)。它支持圖片、音頻、視頻等文件或附件的采集,附件與正文可以自動(dòng)關(guān)聯(lián)。在互聯(lián)網(wǎng)時(shí)代,網(wǎng)絡(luò)爬蟲主要是為搜索引擎提供最全面和最新的數(shù)據(jù)。在大數(shù)據(jù)時(shí)代,網(wǎng)絡(luò)爬蟲更是從互聯(lián)網(wǎng)上采集數(shù)據(jù)的有利工具。目前已經(jīng)知道的各種網(wǎng)絡(luò)爬蟲工具已經(jīng)有上百個(gè),網(wǎng)絡(luò)爬蟲工具基本可以分為3類。分布式網(wǎng)絡(luò)爬蟲工具,如Nutch。Java網(wǎng)絡(luò)爬蟲工具,如Crawler4j、WebMagic、WebCollector。非Java網(wǎng)絡(luò)爬蟲工具,如Scrapy(基于Python語(yǔ)言開發(fā))。本節(jié)首先對(duì)網(wǎng)絡(luò)爬蟲的原理和工作流程進(jìn)行簡(jiǎn)單介紹,然后對(duì)網(wǎng)絡(luò)爬蟲抓取策略進(jìn)行討論,最后對(duì)典型的網(wǎng)絡(luò)工具進(jìn)行描述。網(wǎng)絡(luò)爬蟲原理網(wǎng)絡(luò)爬蟲是一種按照一定的規(guī)則,自動(dòng)地抓取Web信息的程序或者腳本。Web網(wǎng)絡(luò)爬蟲可以自動(dòng)采集所有其能夠訪問(wèn)到的頁(yè)面內(nèi)容,為搜索引擎和大數(shù)據(jù)分析提供

數(shù)據(jù)來(lái)源。從功能上來(lái)講,爬蟲一般有數(shù)據(jù)采集、處理和存儲(chǔ)3部分功能,如圖1所示。圖1網(wǎng)絡(luò)爬蟲示意網(wǎng)頁(yè)中除了包含供用戶閱讀的文字信息外,還包含一些超鏈接信息。網(wǎng)絡(luò)爬蟲系統(tǒng)正是通過(guò)網(wǎng)頁(yè)中的超鏈接信息不斷獲得網(wǎng)絡(luò)上的其他網(wǎng)頁(yè)的。網(wǎng)絡(luò)爬蟲從一個(gè)或若干初始網(wǎng)頁(yè)的URL開始,獲得初始網(wǎng)頁(yè)上的URL,在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。網(wǎng)絡(luò)爬蟲系統(tǒng)一般會(huì)選擇一些比較重要的、出度(網(wǎng)頁(yè)中鏈出的超鏈接數(shù))較大的網(wǎng)站的URL作為種子URL集合。網(wǎng)絡(luò)爬蟲系統(tǒng)以這些種子集合作為初始URL,開始數(shù)據(jù)的抓取。因?yàn)榫W(wǎng)頁(yè)中含有鏈接信息,通過(guò)已有網(wǎng)頁(yè)的URL會(huì)得到一些新的URL??梢园丫W(wǎng)頁(yè)之間的指向結(jié)構(gòu)視為一個(gè)森林,每個(gè)種子URL對(duì)應(yīng)的網(wǎng)頁(yè)是森林中的一棵樹的根結(jié)點(diǎn),這樣網(wǎng)絡(luò)爬蟲系統(tǒng)就可以根據(jù)廣度優(yōu)先搜索算法或者深度優(yōu)先搜索算法遍歷所有的網(wǎng)頁(yè)。由于深度優(yōu)先搜索算法可能會(huì)使爬蟲系統(tǒng)陷入一個(gè)網(wǎng)站內(nèi)部不利于搜索比較靠近網(wǎng)站首頁(yè)的網(wǎng)頁(yè)信息,因此一般采用廣度優(yōu)先搜索算法采集網(wǎng)頁(yè)。網(wǎng)絡(luò)爬蟲系統(tǒng)首先將種子URL放入下載隊(duì)列,并簡(jiǎn)單地從隊(duì)首取出一個(gè)URL下載其對(duì)應(yīng)的網(wǎng)頁(yè)彳得到網(wǎng)頁(yè)的內(nèi)容并將其存儲(chǔ)后經(jīng)過(guò)解析網(wǎng)頁(yè)中的鏈接信息可以得到一些新的URL。其次,根據(jù)一定的網(wǎng)頁(yè)分析算法過(guò)濾掉與主題無(wú)關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。最后,取出個(gè)URL,對(duì)其對(duì)應(yīng)的網(wǎng)頁(yè)進(jìn)行下載,然后再解析,如此反復(fù)進(jìn)行,直到遍歷了整個(gè)網(wǎng)絡(luò)或者滿足某種條件后才會(huì)停止下來(lái)。最后,取出網(wǎng)絡(luò)爬蟲工作流程如圖2所示,網(wǎng)絡(luò)爬蟲的基本工作流程如下。1)首先選取一部分種子URL。2)將這些URL放入待抓取URL隊(duì)列。3)從待抓取URL隊(duì)列中取出待抓取URL,解析DNS,得到主機(jī)的IP地址,并將URL對(duì)應(yīng)的網(wǎng)頁(yè)下載下來(lái)存儲(chǔ)到已下載網(wǎng)頁(yè)庫(kù)中。此外將這些URL放進(jìn)已抓取URL隊(duì)列。4)分析已抓取URL隊(duì)列中的URL,分析其中的其他URL,并且將這些URL放入待抓取URL隊(duì)列,從而進(jìn)入下一個(gè)循環(huán)。己抓取一隊(duì)列抽取出新的己抓取一隊(duì)列抽取出新的C電放入待抓取LRL隊(duì)列圖2網(wǎng)絡(luò)爬蟲的基本工作流程網(wǎng)絡(luò)爬蟲抓取策略Google和百度等通用搜索引擎抓取的網(wǎng)頁(yè)數(shù)量通常都是以億為單位計(jì)算的。那么,面對(duì)如此眾多的網(wǎng)頁(yè),通過(guò)何種方式才能使網(wǎng)絡(luò)爬蟲盡可能地遍歷所有網(wǎng)頁(yè),從而盡可能地?cái)U(kuò)大網(wǎng)頁(yè)信息的抓取覆蓋面,這是網(wǎng)絡(luò)爬蟲系統(tǒng)面對(duì)的一個(gè)很關(guān)鍵的問(wèn)題。在網(wǎng)絡(luò)爬蟲系統(tǒng)中,抓取策略決定了抓取網(wǎng)頁(yè)的順序。本節(jié)首先對(duì)網(wǎng)絡(luò)爬蟲抓取策略用到的基本概念做簡(jiǎn)單介紹。1)網(wǎng)頁(yè)間關(guān)系模型從互聯(lián)網(wǎng)的結(jié)構(gòu)來(lái)看,網(wǎng)頁(yè)之間通過(guò)數(shù)量不等的超鏈接相互連接,形成一個(gè)彼此關(guān)聯(lián)、龐大復(fù)雜的有向圖。如圖3所示,如果將網(wǎng)頁(yè)看成是圖中的某一個(gè)結(jié)點(diǎn),而將網(wǎng)頁(yè)中指向其他網(wǎng)頁(yè)的鏈接看成是這個(gè)結(jié)點(diǎn)指向其他結(jié)點(diǎn)的邊,那么我們很容易將整個(gè)互聯(lián)網(wǎng)上的網(wǎng)頁(yè)建模成一個(gè)有向圖。理論上講,通過(guò)遍歷算法遍歷該圖,可以訪問(wèn)到互聯(lián)網(wǎng)上幾乎所有的網(wǎng)頁(yè)。

2)網(wǎng)頁(yè)分類從爬蟲的角度對(duì)互聯(lián)網(wǎng)進(jìn)行劃分,可以將互聯(lián)網(wǎng)的所有頁(yè)面分為5個(gè)部分:已下載未過(guò)期網(wǎng)頁(yè)、已下載已過(guò)期網(wǎng)頁(yè)、待下載網(wǎng)頁(yè)、可知網(wǎng)頁(yè)和不可知網(wǎng)頁(yè),如圖4所示。抓取到本地的網(wǎng)頁(yè)實(shí)際上是互聯(lián)網(wǎng)內(nèi)容的一個(gè)鏡像與備份?;ヂ?lián)網(wǎng)是動(dòng)態(tài)變化的,當(dāng)一部分互聯(lián)網(wǎng)上的內(nèi)容發(fā)生變化后,抓取到本地的網(wǎng)頁(yè)就過(guò)期了。所以,已下載的網(wǎng)頁(yè)分為已下載未過(guò)期網(wǎng)頁(yè)和已下載已過(guò)期網(wǎng)頁(yè)兩類。

可知網(wǎng)頁(yè)是指還沒(méi)有抓取下來(lái),也沒(méi)有在待抓取URL隊(duì)列中,但是可以通過(guò)對(duì)已抓取頁(yè)面或者待抓取URL對(duì)應(yīng)頁(yè)面進(jìn)行分析,從而獲取到的網(wǎng)頁(yè)。還有一部分網(wǎng)頁(yè),網(wǎng)絡(luò)爬蟲是無(wú)法直接抓取下載的,稱為不可知網(wǎng)頁(yè)。下面重點(diǎn)介紹幾種常見的抓取策略。.通用網(wǎng)絡(luò)爬蟲通用網(wǎng)絡(luò)爬蟲又稱全網(wǎng)爬蟲,爬行對(duì)象從一些種子URL擴(kuò)展到整個(gè)Web,主要為門戶站點(diǎn)搜索引擎和大型Web服務(wù)提供商采集數(shù)據(jù)。為提高工作效率,通用網(wǎng)絡(luò)爬蟲會(huì)采取一定的爬行策略。常用的爬行策略有深度優(yōu)先策略和廣度優(yōu)先策略。1)深度優(yōu)先策略深度優(yōu)先策略是指網(wǎng)絡(luò)爬蟲會(huì)從起始頁(yè)開始,一個(gè)鏈接一個(gè)鏈接地跟蹤下去,直到不能再深入為止。網(wǎng)絡(luò)爬蟲在完成一個(gè)爬行分支后返回到上一鏈接結(jié)點(diǎn)進(jìn)一步搜索其他鏈接。當(dāng)所有鏈接遍歷完后,爬行任務(wù)結(jié)束。這種策略比較適合垂直搜索或站內(nèi)搜索但爬行頁(yè)面內(nèi)容層次較深的站點(diǎn)時(shí)會(huì)造成資源的巨大浪費(fèi)。以圖3為例,遍歷的路徑為1-2-5-6-3-7-4-8。在深度優(yōu)先策略中,當(dāng)搜索到某一個(gè)結(jié)點(diǎn)的時(shí)候,這個(gè)結(jié)點(diǎn)的子結(jié)點(diǎn)及該子結(jié)點(diǎn)的后繼結(jié)點(diǎn)全部?jī)?yōu)先于該結(jié)點(diǎn)的兄弟結(jié)點(diǎn),深度優(yōu)先策略在搜索空間的時(shí)候會(huì)盡量地往深處去,只有找不到某結(jié)點(diǎn)的后繼結(jié)點(diǎn)時(shí)才考慮它的兄弟結(jié)點(diǎn)。這樣的策略就決定了深度優(yōu)先策略不一定能找到最優(yōu)解并且由于深度的限制甚至找不到解。如果不加限制,就會(huì)沿著一條路徑無(wú)限制地?cái)U(kuò)展下去,這樣就會(huì)"陷入"到巨大的數(shù)據(jù)量中。一般情況下,使用深度優(yōu)先策略都會(huì)選擇一個(gè)合適的深度,然后反復(fù)地搜索,直到找到解,這樣搜索的效率就降低了。所以深度優(yōu)先策略一般在搜索數(shù)據(jù)量比較小的時(shí)候才使用。2)廣度優(yōu)先策略廣度優(yōu)先策略按照網(wǎng)頁(yè)內(nèi)容目錄層次深淺來(lái)爬行頁(yè)面處于較淺目錄層次的頁(yè)面首先被爬行。當(dāng)同一層次中的頁(yè)面爬行完畢后,爬蟲再深入下一層繼續(xù)爬行。仍然以圖3為例,遍歷的路徑為1-2-3-4-5-6-7-8由于廣度優(yōu)先策略是對(duì)第N層的結(jié)點(diǎn)擴(kuò)展完成后才進(jìn)入第N+1層的,所以可以保證以最短路徑找到解。這種策略能夠有效控制頁(yè)面的爬行深度避免遇到一個(gè)無(wú)窮深層分支時(shí)無(wú)法結(jié)束爬行的問(wèn)題,實(shí)現(xiàn)方便,無(wú)須存儲(chǔ)大量中間結(jié)點(diǎn),不足之處在于需較長(zhǎng)時(shí)間才能爬行到目錄層次較深的頁(yè)面。如果搜索時(shí)分支過(guò)多,也就是結(jié)點(diǎn)的后繼結(jié)點(diǎn)太多,就會(huì)使算法耗盡資源,在可以利用的空間內(nèi)找不到解。.聚焦網(wǎng)絡(luò)爬蟲聚焦網(wǎng)絡(luò)爬蟲又稱主題網(wǎng)絡(luò)爬蟲是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)的頁(yè)面的網(wǎng)絡(luò)爬蟲。1)基于內(nèi)容評(píng)價(jià)的爬行策略DeBra將文本相似度的計(jì)算方法引入到網(wǎng)絡(luò)爬蟲中,提出了FishSearch算法。該算法將用戶輸入的查詢?cè)~作為主題,包含查詢?cè)~的頁(yè)面被視為與主題相關(guān)的頁(yè)面,其局限性在于無(wú)法評(píng)價(jià)頁(yè)面與主題相關(guān)度的大小。Herseovic對(duì)FishSearch算法進(jìn)行了改進(jìn),提出了SharkSearch算法,即利用空間向量模型計(jì)算頁(yè)面與主題的相關(guān)度大小。采用基于連續(xù)值計(jì)算鏈接價(jià)值的方法,不但可以計(jì)算出哪些抓取的鏈接和主題相關(guān),還可以得到相關(guān)度的量化大小。2)基于鏈接結(jié)構(gòu)評(píng)價(jià)的爬行策略網(wǎng)頁(yè)不同于一般文本,它是一種半結(jié)構(gòu)化的文檔,包含了許多結(jié)構(gòu)化的信息。網(wǎng)頁(yè)不是單獨(dú)存在的,頁(yè)面中的鏈接指示了頁(yè)面之間的相互關(guān)系,基于鏈接結(jié)構(gòu)的搜索策略模式利用這些結(jié)構(gòu)特征來(lái)評(píng)價(jià)頁(yè)面和鏈接的重要性以此決定搜索的順序。其中,PageRank算法是這類搜索策略模式的代表。PageRank算法的基本原理是,如果一個(gè)網(wǎng)頁(yè)多次被引用,則可能是很重要的網(wǎng)頁(yè),如果一個(gè)網(wǎng)頁(yè)沒(méi)有被多次引用,但是被重要的網(wǎng)頁(yè)引用,也有可能是重要的網(wǎng)頁(yè)。一個(gè)網(wǎng)頁(yè)的重要性被平均地傳遞到它所引用的網(wǎng)頁(yè)上。將某個(gè)頁(yè)面的PageRank除以存在于這個(gè)頁(yè)面的正向鏈接,并將得到的值分別和正向鏈接所指的頁(yè)面的PageRank相加,即得到了被鏈接的頁(yè)面的PageRank。如圖5所示,PageRank值為100的網(wǎng)頁(yè)把它的重要性平均傳遞給了它所引用的兩個(gè)頁(yè)面,每個(gè)頁(yè)面獲得了50,同樣PageRank值為9的網(wǎng)頁(yè)給它所引用的3個(gè)頁(yè)面的每個(gè)頁(yè)面?zhèn)鬟f的值為3。PageRank值為53的頁(yè)面的值來(lái)源于兩個(gè)引用了它的頁(yè)面?zhèn)鬟f過(guò)來(lái)的值。

3)基于增強(qiáng)學(xué)習(xí)的爬行策略Rennie和McCallum將增強(qiáng)學(xué)習(xí)引入聚焦爬蟲,利用貝葉斯分類器,根據(jù)整個(gè)網(wǎng)頁(yè)文本和鏈接文本對(duì)超鏈接進(jìn)行分類,為每個(gè)鏈接計(jì)算出重要性,從而決定鏈接的訪問(wèn)順序。4)基于語(yǔ)境圖的爬行策略Diligenti等人提出了一種通過(guò)建立語(yǔ)境圖學(xué)習(xí)網(wǎng)頁(yè)之間的相關(guān)度的爬行策略,該策略可訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)系統(tǒng),通過(guò)該系統(tǒng)可計(jì)算當(dāng)前頁(yè)面到相關(guān)Web頁(yè)面的距離,距離近的頁(yè)面中的鏈接優(yōu)先訪問(wèn)。.增量式網(wǎng)絡(luò)爬蟲增量式網(wǎng)絡(luò)爬蟲是指對(duì)已下載網(wǎng)頁(yè)采取增量式更新并且只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁(yè)的爬蟲,它能夠在一定程度上保證所爬行的頁(yè)面是盡可能新的頁(yè)面。增量式網(wǎng)絡(luò)爬蟲有兩個(gè)目標(biāo):保持本地頁(yè)面集中存儲(chǔ)的頁(yè)面為最新頁(yè)面。提高本地頁(yè)面集中頁(yè)面的質(zhì)量。為實(shí)現(xiàn)第一個(gè)目標(biāo)增量式網(wǎng)絡(luò)爬蟲需要通過(guò)重新訪問(wèn)網(wǎng)頁(yè)來(lái)更新本地頁(yè)面集中頁(yè)面的內(nèi)容。常用的方法有統(tǒng)一更新法、個(gè)體更新法和基于分類的更新法。在統(tǒng)一更新法中,網(wǎng)絡(luò)爬蟲以相同的頻率訪問(wèn)所有網(wǎng)頁(yè),而不考慮網(wǎng)頁(yè)的改變頻率。在個(gè)體更新法中,網(wǎng)絡(luò)爬蟲根據(jù)個(gè)體網(wǎng)頁(yè)的改變頻率來(lái)重新訪問(wèn)各頁(yè)面。在基于分類的更新法中網(wǎng)絡(luò)爬蟲根據(jù)網(wǎng)頁(yè)改變頻率將其分為更新較快網(wǎng)頁(yè)子集和更新較慢網(wǎng)頁(yè)子集兩類,然后以不同的頻率訪問(wèn)這兩類網(wǎng)頁(yè)。為實(shí)現(xiàn)第二個(gè)目標(biāo)增量式網(wǎng)絡(luò)爬蟲需要對(duì)網(wǎng)頁(yè)的重要性排序常用的策略有廣度優(yōu)先策略、PageRank優(yōu)先策略等。.深層網(wǎng)絡(luò)爬蟲網(wǎng)頁(yè)按存在方式可以分為表層網(wǎng)頁(yè)和深層網(wǎng)頁(yè)。?表層網(wǎng)頁(yè)是指?jìng)鹘y(tǒng)搜索引擎可以索引的頁(yè)面,以超鏈接可以到達(dá)的靜態(tài)網(wǎng)頁(yè)為主。?深層網(wǎng)頁(yè)是那些大

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論