改版說明
本書大部分內容均針對網路爬蟲演算法以及大型Cluster 的架設,針對內容的爬蟲使用著墨較少,在第二版中,也加入了針對網頁內容爬蟲的程式。由於網路爬蟲套件已相當成熟,因此本書新增的十一章,將使用負盛名的Ruby Gem 來進行示範,分別是Nokogiri 以及Mechanize。讀者必須具備基本架設Ruby 執行的環境,並且對Ruby 語言有基礎的認識。
胡嘉璽
前言
當你在飆網時,你是否知道還有一類特殊的網路使用者也在網際網路上默默地工作著,它們就是網路爬蟲。這些網路爬蟲按照設計者預定的方式,在網路中穿梭,同時自動收集有用的資訊,進行分類和整理,將整理結果提供給使用者,以方便使用者尋找他們感興趣的內容。由於網路爬蟲的實用性,引有很多程式師,特別是Web程式師的興趣。
但是大多數網路爬蟲的開發原理與技巧在專業的公司內部都秘而不宣,至今仍然缺少理論與實作相結合的專門介紹網路爬蟲的書籍。本書將彌補這個問題,嘗試理論與實作相結合,深入透徹地講解網路爬蟲的原理,並且輔以相關程式碼作為參考。本書相關的程式碼可在www.topteam.cc 佳魁資訊官網下載。
本書的兩位主要作者在搜尋引擎領域都有豐富的理論和實作經驗。同時,還有多個程式師幫忙開發或撰寫了程式碼實現,例如Java 實現非同步I/O 或對PDF 檔案的處理等。
本書從基本的爬蟲原理開始講解,透過介紹優先順序佇列、寬度優先搜索等內容引領讀者入門;之後根據目前風起雲湧的雲端運算熱潮,重點講述雲端運算的相關內容及其在爬蟲中的應用,以及帶偏好的爬蟲、資訊抽取、連結分析等內容;為了能夠讓讀者更深入地了解爬蟲,本書在最後兩章還介紹了有關爬蟲的資料採擷的內容。
由於搜尋引擎相關領域也正在快速發展中,有些不成熟的內容,因篇幅有限不在本書表現,例如有關“暗網"的內容。隨著技術的不斷發展,我們將在今後的版本中加入這些內容。
本書適合需要實際應用搜尋引擎的程式師使用,對於資訊檢索等相關研究人員也具有參考價值,同時獵兔搜索技術團隊也已經開發出以本書為基礎的專門教育訓練課程和商務軟體。目前搜尋引擎開發人員仍然很稀乏,作者真誠地希望透過本書把讀者帶入搜尋引擎開發的大門並認識更多的朋友。
感謝開放原始碼軟體和我們的家人、關心我們的老師和朋友、創業夥伴以及選擇獵兔搜索軟體的客戶多年來的支援。由於手機遊戲發展快速,撰寫時間倉促,書中難免存在不妥之處,敬請讀者提出寶貴意見。