搜尋引擎背後的秘密 - 網路爬蟲 (Crawler)
程式作品C 語言JavaC#JavaScript常用函數文字處理遊戲程式衛星定位系統程式資料結構網路程式自然語言人工智慧機率統計資訊安全等待完成訊息相關網站參考文獻最新修改簡體版English |
程式專案下載:crawler.zip 簡介搜尋引擎是網際網路興起後最常被使用的工具之一,其主要技術包含前端的全文檢索與後端的網頁蒐集兩類,本文將介紹搜尋引擎後端的網頁蒐集技術 - 并且以 Java 語言實作一個100行左右的網頁蒐集程式 "網路爬蟲 (Crawler)", 然後說明其製作方法與原理。 Google 與 Yahoo 等網站的背後,都有一個強大的網頁蒐集程式,可以將全世界的網頁通通抓回去儲存以便提供搜尋之用,這個程式就稱為 "爬行者 (Crawler)",也有人索性稱為蜘蛛 (Spider),因為這個就好像在網路上爬來爬去的蜘蛛一樣,到處抓網頁回家放。 Crawler 的設計原理,簡要來說是透過程式去追蹤網頁上的超連結,然後不斷往外擴張,以便將全世界中曾經被連結到的網頁全部都抓回到來,這也是 Google, Yahoo 等網站背後最重要的程式之一。 實作要啟動 Crawler,首先要給一個起始點,以下的範例是利用台灣的 Yahoo 網站作為起始點,並且往下抓兩層,其主程式寫法如下。
以下是 Crawler 的核心程式,其做法是同時執行 10 個 thread 以抓取不同網頁,加快抓取的速度,以下程式在建立 10 個thread 後,會隨時檢查每個 thread 的目前狀況,若有抓到新的網頁,則將其存檔,然後抽取出其中所有的超連結,並將這些超連結放入等待抓取的網址庫中,以便在有 thread 空出來的時候可以繼續抓許下一個網頁。
結語Crawler 是搜尋引擎中的關鍵技術,在本文中我們實作了一個簡單的 Crawler ,並以 10 個 thread 平行抓取網頁以加快抓取的速度,這個程式可以用來作為個人抓取網頁個工具程式,作為建立搜尋引擎的基礎。 |
page revision: 5, last edited: 19 Oct 2010 09:11
請問我有興趣想學爬蟲程式 該如何入門 有人在教學嗎 ? 若自修 必須看哪些相關主題的書籍 ? 敬請惠予指導. 謝謝您 !
Post preview:
Close preview