網路爬蟲程式

網路爬蟲程式

Spider又叫WebCrawler或者Robot,是一個沿著連結漫遊Web 文檔集合的程式。它一般駐留在伺服器上,通過給定的一些URL,利用HTTP等標準協定讀取相應文檔,然後以文檔中包括的所有未訪問過的URL作為新的起點,繼續進行漫遊,直到沒有滿足條件的新URL為止。WebCrawler的主要功能是自動從Internet上的各Web 站點抓取Web文檔並從該Web文檔中提取一些信息來描述該Web文檔,為搜尋引擎站點的資料庫伺服器追加和更新數據提供原始數據,這些數據包括標題、長度、檔案建立時間、HTML檔案中的各種連結數目等

IP 地址搜尋策略

先賦予爬蟲一個起始的IP位址,然後根據IP位址遞增的方式搜尋本IP位址段後的每一個WWW地址中的文檔,它完全不考慮各文檔中指向其它Web 站點的超級連結地址。優點是搜尋全面,能夠發現那些沒被其它文檔引用的新文檔的信息源;缺點是不適合大規模搜尋。

深度優先搜尋策略

深度優先搜尋是一種在開發爬蟲早期使用較多的方法。它的目的是要達到被搜尋結構的葉結點(即那些不包含任何超鏈的HTML檔案) 。在一個HTML檔案中,當一個超鏈被選擇後,被連結的HTML檔案將執行深度優先搜尋,即在搜尋其餘的超鏈結果之前必須先完整地搜尋單獨的一條鏈。

深度優先搜尋沿著HTML檔案上的超鏈走到不能再深入為止,然後返回到某一個HTML檔案,再繼續選擇該HTML檔案中的其他超鏈。

當不再有其他超鏈可選擇時,說明搜尋已經結束。

優點是能遍歷一個Web 站點或深層嵌套的文檔集合;缺點是因為Web結構相當深,,有可能造成一旦進去,再也出不來的情況發生。

寬度優先搜尋策略

在寬度優先搜尋中,先搜尋完一個Web 頁面中所有的超級連結,然後再繼續搜尋下一層, 直到底層為止。例如,一個HTML 檔案中有三個超鏈,選擇其中之一併處理相應的HTML檔案,然後不再選擇此HTML檔案中的任何超鏈, 而是返回並選擇第二個超鏈,處理相應的HTML檔案,再返回,選擇第三個超鏈並處理相應的HTML檔案。一旦一層上的所有超鏈都己被選擇過,就可以開始在剛才處理過的HTML 檔案中搜尋其餘的超鏈。

這就保證了對淺層的首先處理。當遇到一個無窮盡的深層分支時,不會導致陷進WWW 中的深層文檔中出現出不來的情況發生。寬度優先搜尋策略還有一個優點,即它能在兩個HTML檔案之間找到最短路徑。

寬度優先搜尋策略通常是實現爬蟲的最佳策略,因為它容易實現,而且具備大多數期望的功能。但是如果要遍歷一個指定的站點或者深層嵌套的HTML檔案集,用寬度優先搜尋策略則需要花費比較長的時間才能到達深層的HTML檔案。綜合考慮以上幾種策略和國內信息導航系統搜尋信息的特點,國內一般採用以寬度優先搜尋策略為主、線性搜尋策略為輔的搜尋策略。對於某些不被引用的或很少被引用的HTML檔案,寬度優先搜尋策略可能會遺漏這些孤立的信息源,可以用線性搜尋策略作為它的補充。

專業搜尋引擎的爬蟲策略

專業搜尋引擎網路爬蟲通常採用“最好優先”原則訪問WEB,即為快速、有效地獲得更多的與主題相關的頁面(簡稱“回報”),每次選擇“最有價值”的連結進行訪問。由於連結包含於頁面之中,而通常具有較高價值的頁面包含的連結也具有較高的價值,因而對連結價值的評價有時也轉換為對頁面價值的評價。

爬蟲的設計中應該注意的問題

第一個問題是URL地址的標準化:在WWW上,一個URL地址可以有多種表示方法,可以用IP位址表示,也可以用域名來表示。為了避免爬蟲重複訪問同一地址。第二個問題是避免掉進網路陷阱:網路上的連結情況比較複雜,一些靜態的網頁可能構成閉環迴路。為了避免爬蟲在一條循環路線上反覆抓取,在把URL加入待搜尋地址列表之前都要檢查是否已在待搜尋的地址列表中出現過。對於動態網頁,爬蟲應該忽略所有帶參數的URL。第三個問題:對於拒絕訪問的頁面,爬蟲應該遵從“漫遊拒絕訪問規則”。

相關詞條

熱門詞條

聯絡我們