爬蟲簡介

關於本文檔的PDF版請轉至百度網盤鏈接

PDF版本更清晰

鏈接:https://pan.baidu.com/s/19_Nl_-ob_ecK-zYDjU4dVQ 密碼:so58

爬蟲簡介

目錄

爬蟲簡介... 1

什麼是爬蟲?... 2

產生背景?... 2

關鍵技術概述?... 2

分類?... 2

通用網絡爬蟲。... 2

聚焦網絡爬蟲:... 2

增量式網絡爬蟲... 3

Deep Web爬蟲... 3

爬取目標分類... 3

基於目標網頁特徵:... 3

基於目標數據模式... 3

基於領域的概念... 4

網頁搜索策略... 4

廣度優先搜索... 4

最佳優先搜索... 4

深度優先搜索... 4

網頁分析算法... 4

拓撲分析算法... 4

網頁內容分析算法... 5

難點... 6

爬行策略很難的原因:... 6

萬物有度,合理取捨... 6

網絡爬蟲體系結構... 6

1、需要高結構的爬蟲... 6

2、URL一般化... 7

3、身份識別... 7

網絡爬蟲的組成... 7

控制器... 7

解析器... 7

資源庫... 7

 


 

 

什麼是爬蟲?

按照規格這自動獲取萬維網信息。

 

產生背景?

採集結構化數據

 

關鍵技術概述?

從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前網頁上抽取重要部分。

 

分類?

通用網絡爬蟲。

對象從一些種子URL擴展至到整個web。主要用於門戶扎念搜索引擎和大型web服務商。

爬蟲結構大致分爲:頁面爬行模塊、頁面分析模塊、鏈接過濾模塊、頁面數據庫、URL隊列、初始URL集合。

策略:深度優先策略、廣度優先策略。

 

聚焦網絡爬蟲:

又稱主體爬蟲,選擇性的爬行與預先定義好的主題相關頁面的網絡爬蟲。與通用網絡爬蟲相比,可以極大的節省了硬件和網絡資源,保存需要的網頁。滿足特定的需求。

1、基於內容評價的爬行策略:將用戶輸入的查詢詞作爲主題,包含查詢詞的頁面被視爲與主題相關,侷限性在於無法評價頁面與主題相關度的高低。但是經過Herserovie對Fish Search算法進行了改進,提出Sharksearch算法,利用空間向量模型計算頁面與主題的相關度大小。

2、基於鏈接結構評價的爬行策略:Web頁面作爲一種半結構化文檔,包含很多信息,可用來評價鏈接重要性。Pagerank算法每次選擇pagerank值較大的頁面中的鏈接來訪問。另一種是HITS方法,計算Authority權重和hub權重,並以此決定鏈接的訪問順序。

3、基於增強學習的爬行策略:rennie和mccallum將增強學習引入聚焦爬蟲,利用貝葉斯分類器,根據整個網頁文本和鏈接文本對超鏈接進行分類,爲每個鏈接計算出重要性。從而決定鏈接的訪問順序。

4、基於語境圖的爬行策略:Diligenti等人提出來了一種通過建立語境圖學習網頁之間的相關度,訓練一個機器學習系統,通過該系統計算當前頁面到相關web頁面的距離,距離越近的頁面中的鏈接優先訪問。印度理工大學和IBM研究中心的研究人員開發了一個典型的聚焦網絡爬蟲。該爬蟲對主題的定義不是採用關鍵詞也不是加權矢量,而是一組具有相同主題的網頁。它包含兩個重要的模塊:一個是分類器,用來計算所爬行的頁面與主題的相關程度,確定是否與主題相關;另一個是淨化器,用來識別通過較少的鏈接連接到大量相關頁面的中心頁面。

 

增量式網絡爬蟲

增量式爬蟲是指對已下載網頁採取增量式更新和只爬行新產生的或者已經發生變化網頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是儘可能新的頁面。與週期性爬行和刷新頁面的網絡爬蟲相比,增量式爬蟲止水在需要的時候爬行新產生或發生更新的頁面,不重新下載沒有發生變化的頁面。可有效減少數據下載量,及時更新以爬行的網頁,減小時間和空間上的消耗,但是增加了爬行算法的複雜度和實現難度。增量式網絡爬蟲的體系結構包含爬行模塊、排序模塊、更新模塊、本地頁面集、待爬行URL集以及本地頁面URL集。

 

Deep Web爬蟲

Web頁面按存在方式可以分爲表層網頁(surface web)和深層網頁(Deep Web,也稱爲Invisible Web Pages或Hidden Web)。表層網頁是指傳統搜索引擎可以索引的頁面,以超鏈接可以到達的靜態網頁爲主構成的Web頁面。Deep Web是那些大部分內容不能通過靜態鏈接獲取的、隱藏在搜索表單後的,只有用戶提交一些關鍵詞才能獲得的web頁面。例如那些用戶註冊後纔可見的網頁就屬於Deep Web。

 

爬取目標分類

爬取目標的描述和定義是決定網頁分析算法與URL搜索策略如何制定的基礎。

而網頁分析算法和候選URL排序算法是決定搜索引擎所提供的服務形式和爬蟲網頁抓取行爲的關鍵所在,這兩部分緊密相關。

基於目標網頁特徵:

1、預先給定的初始抓取種子樣本;

2、預先給定的網頁分類目錄與分類目錄對應的種子樣本,如Yahoo!分類結構等;

3、通過用戶行爲確定的抓取目標樣例,分爲:

    A、用戶瀏覽過程中顯示標註的抓取樣本;

    B、通過用戶認知挖掘得到的訪問模式及相關樣本。

其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈接結構特徵,等等。

基於目標數據模式

基於目標數據模式的爬蟲針對的是網頁上的數據,所抓取的數據一般要符合一定的模式,或者可以轉化或映射爲目標數據模式。

基於領域的概念

另一種描述方式是建立目標領域的本體或詞典,用於從語義角度分析不同特徵在某一主題中的重要參數。

 

網頁搜索策略

網頁的抓取策略可以分爲深度優先、廣度優先和最佳優先三種。深度優先在很多情況下會導致爬蟲的陷入(trapped)問題,目前最常見的是廣度優先和最佳優先方法。

廣度優先搜索

廣度優先搜索策略是指在抓取的過程中,在完成當前層次的搜索後,才進行下一層次的搜索。該算法的設計和實現相對簡單。在目前覆蓋儘可能多的網頁,一般使用廣度優先搜索的方法。也有跟多研究將廣度優先搜索策略應用於聚焦爬蟲中。其基本思想是認爲與初始URL在一定鏈接距離內的網頁具有主題相關性的概念很大。另一種方法是將廣度優先搜索與網頁過濾技術結合使用

最佳優先搜索

最佳優先搜索按照一定的網頁分析算法,預測候選URL與目標網頁的相似度,或與主題的相關性,並選取評價最好的一個或幾個URL進行抓取。它只訪問經過網頁分析算法預測爲“有用”的網頁。存在的一個問題是,在爬蟲抓取路徑上的很多相關網頁可能被忽略,因爲最佳優先策略是一種局部最優搜索算法。因此需要將最佳優先結合具體的而應用進行改進,以跳出局部最優點。

深度優先搜索

深度優先搜索策略從起始網頁開始,選擇一個URL進入,分析這個網頁中的URL,選擇一個再進入。如此一個鏈接一個鏈接地抓取下去,直到處理完一條路線之後再處理下一條路線。深度優先策略設計較爲簡單。然而門戶網站提供的鏈接往往最具價值,PageRank也很高,但每深入一層,網頁價值和PageRank都會相應地有所下降。這暗示了重要網頁通常距離種子較近,而過度深入抓取到的網頁卻價值很低。同時這種策略抓取深度直接影響着抓取命中率及抓取效率,對抓取深度是該種策略的關鍵。相對於其他兩種策略而言,此種策略很少被使用。

 

網頁分析算法

網頁分析算法可以歸納爲基於網絡拓撲、基於網頁內容和基於用戶訪問行爲三種類型。

拓撲分析算法

基於網頁之間的鏈接,通過已知的網頁或數據,來對於其有直接或間接鏈接關係的對象(可以是網頁或網站等)作出評價的算法。分爲網頁粒度、網站粒度和網頁塊粒。

1、網頁粒度的分析算法

PageRank和HITS算法時最常見的鏈接分析算法,兩者都是通過對網頁間鏈接度的遞歸和規範化計算,得到每個網頁的重要度評價。PageRank算法雖然考慮了用戶訪問行爲的隨機性和Sink網頁的存在,但忽略了絕大多數用戶訪問時帶有目的性,及網頁和鏈接與查詢主題的相關性。針對這個問題,HITS算法提出了兩個關鍵的概念:權威型網頁(authority)和中心型網頁(hub)。

基於鏈接的抓取的問題是相關頁面主題團之間的隧道現象,即很多在抓取路徑上偏離主題的網頁也指向目標網頁,局部評價策略中斷了在當前路徑上的抓取行爲。

2、網站粒度的分析算法

網站粒度的資源發現和管理策略也比網頁粒度更加簡單有效。網站粒度的爬蟲抓取的關鍵之處在於站點的劃分和站點等級(SiteRank)的計算。

附帶一個優點,常見的PageRank造假難以對siteRank

3、網頁塊粒度的分析算法

在一個頁面中,往往含有多個指向其他頁面的鏈接,這些鏈接中只有一部分是指向主題相關頁面的,或根據網頁的鏈接錨文本表明其具有較高的重要性。但是,在PageRank和HITS算法中,沒有對這些鏈接區分,因此常常給網頁分析帶來廣告噪聲鏈接的干擾。在網頁塊級別(block?level)進行鏈接分析的算法的基本思想史通過VIPS網頁分割算法將網頁分爲不同的網頁塊(pageblock),然後對這些網頁塊建立page?to?block和block?to?page的鏈接矩陣,?分別記爲Z和X。於是,在page?to?page圖上的網頁塊級別的PageRank爲?W?p=X×Z;?在block?to?block圖上的BlockRank爲?W?b=Z×X。已經有人實現了塊級別的PageRank和HITS算法,並通過實驗證明,效率和準確率都比傳統的對應算法要好。

網頁內容分析算法

基於網頁內容的分析算法指的是利用網頁內容(文本、數據等資源)特徵進行的網頁評價。網頁的內容從原來的以超文本爲主,發展到後來動態頁面(或稱爲Hidden Web)數據爲主,後者的數據量約爲直接可見頁面數據(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒體數據、Web Service等各種網絡資源形式也日益豐富。因此,基於網頁內容的分析算法也從原來的較爲單存的文本檢索方法,發展爲涵蓋網頁數據抽取、機器學習、數據挖掘、語義理解等多種方法的綜合應用。

本節根據網頁數據形式的不同,將基於網頁內容的分析算法,歸納以下三類:第一種針對以文本和超鏈接爲主的無結構或結構很簡單的網頁;第二種針對從結構化的數據源(如RDBMS)動態生成的頁面,其數據不能直接批量訪問;第三種針對的數據界於第一和第二類數據之間,具有較好的結構,顯示遵循一定模式或風格,且可以直接訪問。

基於文本的網頁分析算法

1) 純文本分類與聚類算法

很大程度上借用了文本檢索的技術。文本分析算法可以快速有效的對網頁進行分類和聚類,但是由於忽略了網頁間和網頁內部的結構信息,很少單獨使用。

2) 超文本分類和聚類算法

根據網頁鏈接網頁的相關類型對網頁進行分類,依靠相關聯的網頁推測該網頁的類型。

 

難點

爬行策略很難的原因:

1、巨大的數據量;

2、他更快的更新頻率;

3、動態頁面的產生

基於這些原因,爬蟲問題變得舉步維艱。巨大的數據量說明爬蟲在給定時間內只可以抓取部分,因而需要設置爬取的優先級,這樣才能夠優先爬取重要數據。

快速更新的問題導致下載的時候可能又有新的網頁更新被添加,因此需要特定的算法來解決。

動態頁面也是很複雜的,比如說一個信息使用三種格式,兩種分類方式,那麼他的訪問方式就有6中可能性,如果再增加的話那麼會產生指數迭代的效果。因此爲了獲取不同的內容,必須篩選無窮僅有微小變化的組合。

萬物有度,合理取捨

資源不是無限的,爬蟲需要考慮下一步訪問的策略:

1、選擇策略,決定下載的頁面

2、重新訪問材料,什麼時候重新訪問;

3、避免給站點造成負載;

4、並行策略,協同分佈式抓取

選擇策略:

    重新訪問策略,需要考慮時間成本,這裏採用新鮮度、過時性來綜合解決。

更新算法應對:

統一策略:特定的網站羣使用相同的頻率

正比策略:對變化越多的網頁,重新訪問的頻率越高。網頁訪問的頻率和網頁變化的頻率直接相關。

平衡性禮貌策略:

爲了不使得網站癱瘓,這樣得不償失,因此需要考慮爬蟲平衡性能。

1、網路資源;

2、服務器超載;

3、質量糟糕的爬蟲;

這部分有root.txt協議來規定訪問限制。

 

網絡爬蟲體系結構

1、需要高結構的爬蟲

一個人的成功不能算成功,能折斷一根筷子的力氣也不叫力氣,如果一個爬蟲只能夠爬取十個數據就go die(狗帶)了,那麼要他幹啥,辛辛苦苦寫代碼還不如直接肉身爬蟲來的準、快、有效呢。因此,高性能的爬蟲是有必要的,系統設計、I/O和網絡效率,健壯性、簡易性也是需要考慮的。

 

2、URL一般化

URL需要避免重複爬取,爲了使URL一致,全部轉化爲小寫字符,去除逗號,非空路徑,末尾加反斜槓等規範。

 

3、身份識別

    網絡爬蟲根據http請求的用戶代理(user agent)字段向網絡服務器表明身份。

 

網絡爬蟲的組成

控制器

負責系統過來的URL鏈接,分配縣城,啓動線程調用爬取網頁的過程。

解析器

解析器具有下載網頁、對文本進行篩選處理的功能

資源庫

就是數據存儲的位置,也就是數據庫。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章