網(wǎng)絡(luò )爬蟲(chóng)技術(shù)(新)
優(yōu)采云 發(fā)布時(shí)間: 2020-06-22 08:00
網(wǎng)絡(luò )爬蟲(chóng)技術(shù)網(wǎng)路機器人1.概念: 它們是 Web 上孤身運行的軟件程序,它們不斷地篩選數據,做出自己的 決定, 能夠使用 Web 獲取文本或則進(jìn)行搜索查詢(xún),按部就班地完成各自的任務(wù)。 2.分類(lèi): 購物機器人、聊天機器人、搜索機器人(網(wǎng)絡(luò )爬蟲(chóng))等。搜索引擎1.概念: 從網(wǎng)路上獲得網(wǎng)站網(wǎng)頁(yè)資料,能夠構建數據庫并提供查詢(xún)的系統 。 2.分類(lèi)(按工作原理) : 全文搜索引擎、分類(lèi)目錄。 1> 全文搜索引擎數據庫是借助網(wǎng)路爬蟲(chóng)通過(guò)網(wǎng)路上的各類(lèi)鏈接手動(dòng)獲取大量 網(wǎng)頁(yè)信息內容,并按一定的規則剖析整理產(chǎn)生的。 (百度、Google) 2> 分類(lèi)目錄:按目錄分類(lèi)的網(wǎng)站鏈接列表而已 ,通過(guò)人工的方法搜集整理網(wǎng) 站資料產(chǎn)生的數據庫。(國內的搜狐)網(wǎng)絡(luò )爬蟲(chóng)1.概念: 網(wǎng)絡(luò )爬蟲(chóng)也叫網(wǎng)路蜘蛛,它是一個(gè)根據一定的規則手動(dòng)提取網(wǎng)頁(yè)程序,其會(huì )手動(dòng) 的通過(guò)網(wǎng)路抓取互聯(lián)網(wǎng)上的網(wǎng)頁(yè),這種技術(shù)通??赡苣脕?lái)檢測你的站點(diǎn)上所有的鏈接 是否是都是有效的。當然爬蟲(chóng)技術(shù),更為中級的技術(shù)是把網(wǎng)頁(yè)中的相關(guān)數據保存出來(lái),可以成 為搜索引擎。 搜索引擎使用網(wǎng)絡(luò )爬蟲(chóng)找尋網(wǎng)路內容,網(wǎng)絡(luò )上的 HTML 文檔使用超鏈接聯(lián)接了上去, 就像織成了一張網(wǎng),網(wǎng)絡(luò )爬蟲(chóng)也叫網(wǎng)路蜘蛛,順著(zhù)這張網(wǎng)爬行,每到一個(gè)網(wǎng)頁(yè)就用抓取程序 將這個(gè)網(wǎng)頁(yè)抓出來(lái),將內容抽取下來(lái),同時(shí)抽取超鏈接,作為進(jìn)一步爬行的線(xiàn)索。
網(wǎng)絡(luò )爬蟲(chóng) 總是要從某個(gè)起點(diǎn)開(kāi)始爬,這個(gè)起點(diǎn)稱(chēng)作*敏*感*詞*,你可以告訴它,也可以到一些網(wǎng)址列表網(wǎng)站 上獲取。 2.區別: 網(wǎng)絡(luò )爬蟲(chóng) 分類(lèi) 工作原理 通用爬蟲(chóng) 從一個(gè)或多個(gè)初始網(wǎng)頁(yè)的 URL 開(kāi) 始,獲取初始網(wǎng)頁(yè)的 URL,抓取網(wǎng) 頁(yè)的同時(shí)爬蟲(chóng)技術(shù),從當前網(wǎng)頁(yè)提取相關(guān)的 URL 放入隊列中,直到滿(mǎn)足程序的 停止條件。 聚集爬蟲(chóng) 根據一定的網(wǎng)頁(yè)剖析算法過(guò)濾與主題無(wú) 關(guān)的鏈接,保留有用的鏈接(爬行的范圍 是受控的)放到待抓取的隊列中,通過(guò)一 定的搜索策略從隊列中選擇下一步要抓 取的 URL,重復以上步驟,直到滿(mǎn)足程 序的停止條件。 1. 增加了一些網(wǎng)頁(yè)分析算法和網(wǎng)頁(yè)搜 索策略 2. 對 被 爬 蟲(chóng) 抓 取 的 網(wǎng) 頁(yè) 將 會(huì ) 被 系 統 存貯,進(jìn)行一定的剖析、過(guò)濾,并 建立索引,以便以后的查詢(xún)和檢 索,這一過(guò)程所得到的剖析結果還 可能對之后的抓取過(guò)程給出反饋不同點(diǎn)和指導。 缺點(diǎn) 1. 不同領(lǐng)域、 不同背景的用戶(hù)有 不同的檢索目的和需求, 通用 搜索引擎所返回的結果包含 大量用戶(hù)不關(guān)心的網(wǎng)頁(yè)。 2. 通用引擎的目標是大的網(wǎng)路覆 蓋率。 3. 只支持關(guān)鍵字搜索, 不支持按照 語(yǔ)義的搜索。 4. 通用搜索引擎對一些象圖片、 音 頻等信 息 含 量 密 集 且 具 有 一 定結構的數據難以獲取。
廣度優(yōu)先算法 1. 對抓取目標的描述或定義。 2. 對網(wǎng)頁(yè)和數據的剖析和過(guò)濾。 3. 對 URL 的搜索策略。 以上三個(gè)是須要解決的問(wèn)題。算法現有聚焦爬蟲(chóng)對抓取目標的描述可分為基于目標網(wǎng)頁(yè)特點(diǎn)、 基于目標數據模式和基于領(lǐng) 域概念 3 種。 基于目標網(wǎng)頁(yè)特點(diǎn)的爬蟲(chóng)所抓取、 存儲并索引的對象通常為網(wǎng)站或網(wǎng)頁(yè)。 根據*敏*感*詞*樣本 獲取方法可分為: (1)預先給定的初始抓取*敏*感*詞*樣本; (2)預先給定的網(wǎng)頁(yè)分類(lèi)目錄和與分類(lèi)目錄對應的*敏*感*詞*樣本,如 Yahoo!分類(lèi)結構等; (3)通過(guò)用戶(hù)行為確定的抓取目標樣例,分為: a) 用戶(hù)瀏覽過(guò)程中顯示標明的抓取樣本; b) 通過(guò)用戶(hù)日志挖掘得到訪(fǎng)問(wèn)模式及相關(guān)樣本。 其中,網(wǎng)頁(yè)特點(diǎn)可以是網(wǎng)頁(yè)的內容特點(diǎn),也可以是網(wǎng)頁(yè)的鏈接結構特點(diǎn),等等。 3.算法/策略 名稱(chēng) 分類(lèi) 網(wǎng)頁(yè)分析算法 1.基于網(wǎng)路拓撲結構 1>網(wǎng)頁(yè)細度剖析算法 2>網(wǎng)站粒度剖析算法 3>網(wǎng)頁(yè)塊細度剖析算法 2.基于網(wǎng)頁(yè)內容 1>針對以文本和超鏈接為主的 網(wǎng)頁(yè) 2>針對從結構化的數據源動(dòng)態(tài)生 成的網(wǎng)頁(yè)。 3>針對數據介于第一類(lèi)和第二類(lèi) 之間 3.基于用戶(hù)訪(fǎng)問(wèn)行為 網(wǎng)頁(yè)搜索策略 1.深度優(yōu)先策略 2.廣度優(yōu)先策略 3.最佳優(yōu)先策略一些算法的介紹 1> 網(wǎng)頁(yè)分析算法1.1 基于網(wǎng)路拓撲的剖析算法? 基于網(wǎng)頁(yè)之間的鏈接, 通過(guò)已知的網(wǎng)頁(yè)或數據, 來(lái)對與其有直接或間接鏈接關(guān)系的對象 (可以是網(wǎng)頁(yè)或網(wǎng)站等) 作出評價(jià)的算法。
又分為網(wǎng)頁(yè)細度、 網(wǎng)站粒度和網(wǎng)頁(yè)塊細度這三種。 1.1.1 網(wǎng)頁(yè)(Webpage)粒度的剖析算法 PageRank 和 HITS 算法是最常見(jiàn)的鏈接剖析算法, 兩者都是通過(guò)對網(wǎng)頁(yè)間鏈接度的遞歸 和規范化估算,得到每位網(wǎng)頁(yè)的重要度評價(jià)。PageRank 算法其實(shí)考慮了用戶(hù)訪(fǎng)問(wèn)行為的隨 機性和 Sink 網(wǎng)頁(yè)的存在,但忽視了絕大多數用戶(hù)訪(fǎng)問(wèn)時(shí)帶有目的性,即網(wǎng)頁(yè)和鏈接與查詢(xún) 主題的相關(guān)性。針對這個(gè)問(wèn)題,HITS 算法提出了兩個(gè)關(guān)鍵的概念:權威型網(wǎng)頁(yè)(authority) 和中心型網(wǎng)頁(yè)(hub) 。 基于鏈接的抓取的問(wèn)題是相關(guān)頁(yè)面主題團之間的隧洞現象, 即好多在抓取路徑上偏離主 題的網(wǎng)頁(yè)也指向目標網(wǎng)頁(yè),局部評價(jià)策略中斷了在當前路徑上的抓取行為。文獻[21]提出了 一種基于反向鏈接(BackLink)的分層式上下文模型(Context Model) ,用于描述指向目標 網(wǎng)頁(yè)一定化學(xué)跳數直徑內的網(wǎng)頁(yè)拓撲圖的中心 Layer0 為目標網(wǎng)頁(yè),將網(wǎng)頁(yè)根據指向目標網(wǎng) 頁(yè)的數學(xué)跳數進(jìn)行層次界定,從內層網(wǎng)頁(yè)指向外層網(wǎng)頁(yè)的鏈接稱(chēng)為反向鏈接。? 1.1.2 網(wǎng)站粒度的剖析算法 網(wǎng)站粒度的資源發(fā)覺(jué)和管理策略也比網(wǎng)頁(yè)細度的更簡(jiǎn)單有效。
網(wǎng)站粒度的爬蟲(chóng)抓取的關(guān) 鍵之處在于站點(diǎn)的界定和站點(diǎn)等級(SiteRank)的估算。 SiteRank 的估算方式與 PageRank 類(lèi)似, 但是須要對網(wǎng)站之間的鏈接作一定程度具象,并在一定的模型下估算鏈接的權重。 網(wǎng)站劃分情況分為按域名界定和按 IP 地址界定兩種。文獻[18]討論了在分布式情況下, 通過(guò)對同一個(gè)域名下不同主機、服務(wù)器的 IP 地址進(jìn)行站點(diǎn)界定,構造站點(diǎn)圖,利用類(lèi)似 Pa geRank 的方式評價(jià) SiteRank。同時(shí),根據不同文件在各個(gè)站點(diǎn)上的分布情況,構造文檔圖, 結合 SiteRank 分布式估算得到 DocRank。文獻[18]證明,利用分布式的 SiteRank 計算,不僅 大大增加了單機站點(diǎn)的算法代價(jià), 而且克服了單獨站點(diǎn)對整個(gè)網(wǎng)路覆蓋率有限的缺點(diǎn)。 附帶 的一個(gè)優(yōu)點(diǎn)是,常見(jiàn) PageRank 造假無(wú)法對 SiteRank 進(jìn)行愚弄。? 1.1.3 網(wǎng)頁(yè)塊細度的剖析算法 在一個(gè)頁(yè)面中, 往往富含多個(gè)指向其他頁(yè)面的鏈接, 這些鏈接中只有一部分是指向主題 相關(guān)網(wǎng)頁(yè)的,或依照網(wǎng)頁(yè)的鏈接錨文本表明其具有較高重要性。但是,在 PageRank 和 HIT S 算法中,沒(méi)有對那些鏈接作分辨,因此經(jīng)常給網(wǎng)頁(yè)剖析帶來(lái)廣告等噪音鏈接的干擾。
在網(wǎng) 頁(yè)塊級別(Block?level) 進(jìn)行鏈接剖析的算法的基本思想是通過(guò) VIPS 網(wǎng)頁(yè)分割算法將網(wǎng)頁(yè)分 為不同的網(wǎng)頁(yè)塊(page block),然后對這種網(wǎng)頁(yè)塊構建 page?to?block block?to?page的 和 鏈接矩陣,? 分別記為 Z 和 X。于是,在 page?to? page 圖上的網(wǎng)頁(yè)塊級別的 PageRank 為? W?p=X×Z ? block?to?block圖上的 BlockRank 為?W?b=Z×X ? ; 在 。 已經(jīng)有人實(shí)現了塊級 別的 PageRank 和 HITS 算法,并通過(guò)實(shí)驗證明,效率和準確率都比傳統的對應算法要好。 1.2 基于網(wǎng)頁(yè)內容的網(wǎng)頁(yè)分析算法 基于網(wǎng)頁(yè)內容的剖析算法指的是借助網(wǎng)頁(yè)內容(文本、數據等資源)特征進(jìn)行的網(wǎng)頁(yè)評 價(jià)。網(wǎng)頁(yè)的內容從原先的以超文本為主,發(fā)展到后來(lái)動(dòng)態(tài)頁(yè)面(或稱(chēng)為 Hidden Web)數據 為主,后者的數據量約為直接可見(jiàn)頁(yè)面數據(PIW,Publicly Indexable Web)的 400~500 倍。另一方面,多媒體數據、Web Service 等各類(lèi)網(wǎng)路資源方式也日漸豐富。因此,基于網(wǎng)頁(yè)內容的剖析算法也從原先的較為單純的文本檢索方式, 發(fā)展為囊括網(wǎng)頁(yè)數據抽取、 機器學(xué) 習、數據挖掘、語(yǔ)義理解等多種方式的綜合應用。
本節按照網(wǎng)頁(yè)數據方式的不同,將基于網(wǎng) 頁(yè)內容的剖析算法, 歸納以下三類(lèi): 第一種針對以文本和超鏈接為主的無(wú)結構或結構很簡(jiǎn)單 的網(wǎng)頁(yè);第二種針對從結構化的數據源(如 RDBMS)動(dòng)態(tài)生成的頁(yè)面,其數據不能直接批 量訪(fǎng)問(wèn);第三種針對的數據界于第一和第二類(lèi)數據之間,具有較好的結構,顯示遵照一定模 式或風(fēng)格,且可以直接訪(fǎng)問(wèn)。 1.2.1 基于文本的網(wǎng)頁(yè)剖析算法 1) 純文本分類(lèi)與聚類(lèi)算法 很大程度上借用了文本檢索的技術(shù)。 文本剖析算法可以快速有效的對網(wǎng)頁(yè)進(jìn)行分類(lèi)和聚 類(lèi),但是因為忽視了網(wǎng)頁(yè)間和網(wǎng)頁(yè)內部的結構信息,很少單獨使用。? 2) 超文本分類(lèi)和聚類(lèi)算法 2> 網(wǎng)頁(yè)搜索策略 2. 廣度優(yōu)先搜索策略 廣度優(yōu)先搜索策略是指在抓取過(guò)程中, 在完成當前層次的搜索后, 才進(jìn)行下一層次的搜 索。該算法的設計和實(shí)現相對簡(jiǎn)單。在目前為覆蓋盡可能多的網(wǎng)頁(yè),一般使用廣度優(yōu)先搜索 方法。 也有好多研究將廣度優(yōu)先搜索策略應用于聚焦爬蟲(chóng)中。 其基本思想是覺(jué)得與初始 URL 在一定鏈接距離內的網(wǎng)頁(yè)具有主題相關(guān)性的機率很大。 另外一種方式是將廣度優(yōu)先搜索與網(wǎng) 頁(yè)過(guò)濾技術(shù)結合使用,先用廣度優(yōu)先策略抓取網(wǎng)頁(yè),再將其中無(wú)關(guān)的網(wǎng)頁(yè)過(guò)濾掉。
這些方式 的缺點(diǎn)在于,隨著(zhù)抓取網(wǎng)頁(yè)的增多,大量的無(wú)關(guān)網(wǎng)頁(yè)將被下載并過(guò)濾,算法的效率將變低。 2. 最佳優(yōu)先搜索策略 最佳優(yōu)先搜索策略根據一定的網(wǎng)頁(yè)分析算法,預測候選 URL 與目標網(wǎng)頁(yè)的相似度,或 與主題的相關(guān)性,并選定評價(jià)最好的一個(gè)或幾個(gè) URL 進(jìn)行抓取。它只訪(fǎng)問(wèn)經(jīng)過(guò)網(wǎng)頁(yè)剖析算 法預測為“有用”的網(wǎng)頁(yè)。 存在的一個(gè)問(wèn)題是, 在爬蟲(chóng)抓取路徑上的好多相關(guān)網(wǎng)頁(yè)可能被忽視, 因為最佳優(yōu)先策略是一種局部最優(yōu)搜索算法。因此須要將最佳優(yōu)先結合具體的應用進(jìn)行改 進(jìn),以跳出局部最優(yōu)點(diǎn)。將在第 4 節中結合網(wǎng)頁(yè)分析算法作具體的討論。研究表明,這樣的 閉環(huán)調整可以將無(wú)關(guān)網(wǎng)頁(yè)數目減少 30%~90%。 3. 搜索引擎原理之網(wǎng)路爬蟲(chóng)是怎樣工作的? 在互聯(lián)網(wǎng)中,網(wǎng)頁(yè)之間的鏈接關(guān)系是無(wú)規律的,它們的關(guān)系十分復雜。如果一個(gè)爬蟲(chóng)從 一個(gè)起點(diǎn)開(kāi)始爬行,那么它將會(huì )碰到無(wú)數的分支,由此生成無(wú)數條的爬行路徑,如果聘期爬 行,就有可能永遠也爬不到頭,因此要對它加以控制,制定其爬行的規則。世界上沒(méi)有一種 爬蟲(chóng)還能抓取到互聯(lián)網(wǎng)所有的網(wǎng)頁(yè), 所以就要在提升其爬行速率的同時(shí), 也要提升其爬行網(wǎng) 頁(yè)的質(zhì)量。 網(wǎng)絡(luò )爬蟲(chóng)在搜索引擎中占有重要位置,對搜索引擎的查全、查準都有影響,決定了搜索 引擎數據容量的大小, 而且網(wǎng)路爬蟲(chóng)的優(yōu)劣之間影響搜索引擎結果頁(yè)中的死鏈接的個(gè)數。
搜 索引擎爬蟲(chóng)有深度優(yōu)先策略和廣度優(yōu)先策略,另外,識別垃圾網(wǎng)頁(yè),避免抓取重復網(wǎng)頁(yè),也 是高性能爬蟲(chóng)的設計目標。 爬蟲(chóng)的作用是為了搜索引擎抓取大量的數據, 抓取的對象是整個(gè)互聯(lián)網(wǎng)上的網(wǎng)頁(yè)。 爬蟲(chóng) 程序不可能抓取所有的網(wǎng)頁(yè),因為在抓取的同時(shí),Web 的規模也在減小,所以一個(gè)好的爬 蟲(chóng)程序通常就能在短時(shí)間內抓取更多的網(wǎng)頁(yè)。 一般爬蟲(chóng)程序的起點(diǎn)都選擇在一個(gè)小型綜合型的網(wǎng)站,這樣的網(wǎng)站已經(jīng)囊括了大部分高質(zhì)量的站點(diǎn),爬蟲(chóng)程序就順著(zhù)那些鏈接爬行。在爬 行過(guò)程中,最重要的就是判定一個(gè)網(wǎng)頁(yè)是否早已被爬行過(guò)。 在爬蟲(chóng)開(kāi)始的時(shí)侯, 需要給爬蟲(chóng)輸送一個(gè) URL 列表, 這個(gè)列表中的 URL 地址便是爬蟲(chóng) 的起始位置,爬蟲(chóng)從這種 URL 出發(fā),開(kāi)始了爬行,一直不斷地發(fā)覺(jué)新的 URL,然后再按照 策略爬行這種新發(fā)覺(jué)的 URL,如此永遠反復下去。一般的爬蟲(chóng)都自己完善 DNS 緩沖,建立 DNS 緩沖的目的是推動(dòng) URL 解析成 IP 地址的速率。