用C#2.0實現網路蜘蛛(WebSpider)

來源:互聯網
上載者:User

摘要:本文討論了如何使用C#2.0實現抓取網路資源的網路蜘蛛。使用這個程式,可以通過一個入口網址(如http://www.comprg.com.cn)來掃描整個互連網的網址,並將這些掃描到的網址所指向的網路資源下載到本地。然後可以利用其他的分析工具對這些網路資源做進一步地分析,如提取關鍵詞、分類索引等。也可以將這些網路資源作為資料來源來實現象Google一樣的搜尋引擎。

關鍵詞:C#2.0,Html,網路蜘蛛, 鍵樹,Regex

一、引言

在最近幾年,以Google為首的搜尋引擎越來越引起人們的關注。由於在Google出現之前,很多提供搜尋服務的公司都是使用人工從網路上搜集資訊,並將這些資訊分類匯總後作為搜尋引擎的資料來源。如yahoo公司一開始就是通過數千人不停地從網上搜集供查詢的資訊。這樣做雖然資訊的分類會很人性化,也比較準確,但是隨著互連網資訊爆炸式地增長,通過人工的方式來搜集資訊已經不可能滿足網民對資訊的需求了。然而,這一切隨著Google的出現而得到了徹底改變。Google一反常規的做法,通過程式7*24地從網上不停地擷取網路資源,然後通過一些智能演算法分析這些被下載到本地的網路資源,最後將這些分析後的資料進行索引後就形成了一套完整的基本上不需要人工幹預的搜尋引擎。使用這種模式的搜尋引擎甚至可以在幾天之內就可擷取Internet中的所有資訊,同時也節省了大量的資金和時間成本。而這種搜尋引擎最重要的組成部分之一就是為搜尋引擎提供資料來源的網路蜘蛛。也就是說,實現網路蜘蛛是實現搜尋引擎的第一步,也是最重要的一步。

二、網路蜘蛛的基本實現思想和實現步驟

網路蜘蛛的主要作用是從Internet上不停地下載網路資源。它的基本實現思想就是通過一個或多個入口網址來擷取更多的URL,然後通過對這些URL所指向的網路資源下載並分析後,再獲得這些網路資源中包含的URL,以此類推,直到再沒有可下的URL為止。下面是用程式實現網路蜘蛛的具體步驟。

1. 指定一個(或多個)入口網址,並將這個網址加入到下載隊列中(這時下載隊列中只有一個或多個入口網址)。

2. 負責下載網路資源的線程從下載隊列中取得一個或多個URL,並將這些URL所指向的網路資源下載到本地(在下載之前,一般應該判斷一下這個URL是否已經被下載過,如果被下載過,則忽略這個URL)。如果下載隊列中沒有URL,並且所有的下載線程都處於休眠狀態,說明已經下載完了由入口網址所引出的所有網路資源。這時網路蜘蛛會提示下載完成,並停止下載。

3. 分析這些下載到本地的未分析過的網路資源(一般為html代碼),並獲得其中的URL(如標籤中href屬性的值)。

4. 將第3步獲得的URL加入到下載隊列中。並重新執行第2步。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.