查看: 53024|回覆: 1
打印 上一篇 下一篇

[SEO知識分享] 什麼是網絡蜘蛛?

[複製鏈接]
字體大小: 正常 放大

53

主題

4

好友

53

積分

居民

專職SEO與LAMP工作

跳轉到指定樓層
1#
發表於 2011-11-22 15:16:07 |只看該作者 |正序瀏覽
什麼是網絡蜘蛛?


以下文章部分引用自互聯網,唯許多內容屬於原創。

網絡蜘蛛即Web Spider,是一個很形象的名字。把互聯網比喻成一個蜘蛛網,那麽Spider就是在網上爬來爬去的蜘蛛。網絡蜘蛛是通過網頁的鏈接地址來尋找網頁,從網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它鏈接地址,然後通過這些鏈接地址尋找下一個網頁,這樣一直循環下去,直到把這個網站所有的網頁都抓取完為止。如果把整個互聯網當成一個網站,那麽網絡蜘蛛就可以用這個原理把互聯網上所有的網頁都抓取下來。

對於搜索引擎來說,要抓取互聯網上所有的網頁幾乎是不可能的,從目前公布的數據來看,容量最大的搜索引擎也不過是抓取了整個網頁數量的百分之四十左右。這其中的原因一方面是抓取技術的瓶頸,無法遍歷所有的網頁,有許多網頁無法從其它網頁的鏈接中找到;另一個原因是存儲技術和處理技術的問題,如果按照每個頁面的平均大小為20K計算(包含圖片),100億網頁的容量是100×2000G字節,即使能夠存儲,下載也存在問題(按照一台機器每秒下載20K計算,需要340台機器不停的下載一年時間,才能把所有網頁下載完畢)。同時,由於數據量太大,在提供搜索時也會有效率方面的影響。因此,許多搜索引擎的網絡蜘蛛只是抓取那些重要的網頁,而在抓取的時候評價重要性主要的依據是某個網頁的鏈接深度

但是,深度也取決於網站的熱門程度。如果縱深程度太高,過深的內容將會被網絡蜘蛛忽略掉。

在抓取網頁的時候,網絡蜘蛛一般有兩種策略:廣度優先深度優先(如下圖所示)。

1.廣度優先是指網絡蜘蛛會先抓取起始網頁中鏈接的所有網頁,然後再選擇其中的一個鏈接網頁,繼續抓取在此網頁中鏈接的所有網頁。這是最常用的方式,因為這個方法可以讓網絡蜘蛛並行處理,提高其抓取速度。

2.深度優先是指網絡蜘蛛會從起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之後再轉入下一個起始頁,繼續跟蹤鏈接。這個方法有個優點是網絡蜘蛛在設計的時候比較容易。

兩種策略的區別,下圖的說明會更加明確。

1.jpg

由於不可能抓取所有的網頁,有些網絡蜘蛛對一些不太重要的網站,設置了訪問的層數。例如,在上圖中,A為起始網頁,屬於0層,B、C、D、E、F屬於第1 層,G、H屬於第2層,I屬於第3層。如果網絡蜘蛛設置的訪問層數為2的話,網頁I是不會被訪問到的。這也讓有些網站上一部分網頁能夠在搜索引擎上搜索 到,另外一部分不能被搜索到。對於網站設計者來說,扁平化(例如扁平樹狀結構、統一或規範化域名後綴等)的網站結構設計有助於搜索引擎抓取其更多的網頁

網絡蜘蛛在訪問網站網頁的時候,經常會遇到加密數據和網頁權限的問題,有些網頁是需要會員權限才能訪問。當然,網站的所有者可以通過協議讓網絡蜘蛛不去抓取(下個小節會介紹),但對於一些出售報告的網站,他們希望搜索引擎能搜索到他們的報告,但又不能完全免費的讓搜索者查看,這樣就需要給網絡蜘蛛提供相應的用戶名和密碼。網絡蜘蛛可以通過所給的權限對這些網頁進行網頁抓取,從而提供搜索。而當搜索者點擊查看該網頁的時候,同樣需要搜索者提供相應的權限驗證。

網站與網絡蜘蛛

網絡蜘蛛需要抓取網頁,不同於一般的訪問,如果控制不好,則會引起網站服務器負擔過重。今年4月,淘寶網(http://www.taobao.com) 就因為雅虎搜索引擎的網絡蜘蛛抓取其數據引起淘寶網服務器的不穩定。網站是否就無法和網絡蜘蛛交流呢?其實不然,有多種方法可以讓網站和網絡蜘蛛進行交流。一方面讓網站管理員了解網絡蜘蛛都來自哪兒,做了些什麽,另一方面也告訴網絡蜘蛛哪些網頁不應該抓取,哪些網頁應該更新。

每個網絡蜘蛛都有自己的名字,在抓取網頁的時候,都會向網站標明自己的身份。網絡蜘蛛在抓取網頁的時候會發送一個請求,這個請求中就有一個字段為User -agent,用於標識此網絡蜘蛛的身份。例如Google網絡蜘蛛的標識為GoogleBot,Baidu網絡蜘蛛的標識為BaiDuSpider, Yahoo網絡蜘蛛的標識為Inktomi Slurp。如果在網站上有訪問日誌記錄,網站管理員就能知道,哪些搜索引擎的網絡蜘蛛過來過,什麽時候過來的,以及讀了多少數據等等。如果網站管理員發 現某個蜘蛛有問題,就通過其標識來和其所有者聯系。下面是博客中國(blogchina.com)2004年5月15日的搜索引擎訪問日誌:

11.bmp

網絡蜘蛛進入一個網站,一般會訪問一個特殊的文本文件Robots.txt,這個文件一般放在網站服務器的根目錄下,以南天網為例:http://www.sskyn.com/robots.txt。網站管理員可以通過robots.txt來定義哪些目錄網絡蜘蛛不能訪問,或者哪些目錄對於某些特定的網絡蜘蛛不能訪問。例如有些網站的可執行文件目錄和臨時文件目錄不希望被搜索引擎搜索到,那麽網站管理員就可以把這些目錄定義為拒絕訪問目錄。Robots.txt語法很簡單,例如如果對目錄沒有任何限制,可以用以下兩行來描述:

User-agent: *
Disallow:

當然,Robots.txt只是一個協議,如果網絡蜘蛛的設計者不遵循這個協議,網站管理員也無法阻止網絡蜘蛛對於某些頁面的訪問,但一般的網絡蜘蛛都會遵循這些協議,而且網站管理員還可以通過其它方式來拒絕網絡蜘蛛對某些網頁的抓取。

網絡蜘蛛在下載網頁的時候,會去識別網頁的HTML代碼,在其代碼的部分,會有META標識。通過這些標識,可以告訴網絡蜘蛛本網頁是否需要被抓取,還可以告訴網絡蜘蛛本網頁中的鏈接是否需要被繼續跟蹤。例如:表示本網頁不需要被抓取,但是網頁內的鏈接需要被跟蹤。

關於Robots.txt的語法和META Tag語法,有興趣的讀者可以自行查閱網上相關文章。

現在一般的網站都希望搜索引擎能更全面的抓取自己網站的網頁,因為這樣可以讓更多的訪問者能通過搜索引擎找到此網站。為了讓本網站的網頁更全面被抓取到,網站管理員可以建立一個網站地圖,即Site Map。許多網絡蜘蛛會把sitemap.htm文件作為一個網站網頁爬取的入口(本人注:南天網因為是討論區,應該可以免除網站地圖了,如果管理員不同意,歡迎告知),網站管理員可以把網站內部所有網頁的鏈接放在這個文件裏面,那麽網絡蜘蛛可以很方便的把整個網站抓取下來,避免遺漏某些網頁,也會減小對網站服務器的負擔。


內容提取

搜索引擎建立網頁索引,處理的對象是文本文件。對於網絡蜘蛛來說,抓取下來網頁包括各種格式,包括html、圖片、doc、pdf、多媒體、動態網頁及其它格式等。這些文件抓取下來後,需要把這些文件中的文本信息提取出來。準確提取這些文檔的信息,一方面對搜索引擎的搜索準確性有重要作用,另一方面對於網絡蜘蛛正確跟蹤其它鏈接有一定影響。

對於doc、pdf等文檔,這種由專業廠商提供的軟件生成的文檔,廠商都會提供相應的文本提取接口。網絡蜘蛛只需要調用這些插件的接口,就可以輕松的提取文檔中的文本信息和文件其它相關的信息。

HTML等文檔不一樣,HTML有一套自己的語法,通過不同的命令標識符來表示不同的字體、顏色、位置等版式,如:、、等, 提取文本信息時需要把這些標識符都過濾掉。過濾標識符並非難事,因為這些標識符都有一定的規則,只要按照不同的標識符取得相應的信息即可。但在識別這些信息的時候,需要同步記錄許多版式信息,例如文字的字體大小、是否是標題、是否是加粗顯示、是否是頁面的關鍵詞等,這些信息有助於計算單詞在網頁中的重要程度。同時,對於HTML網頁來說,除了標題和正文以外,會有許多廣告鏈接以及公共的頻道鏈接,這些鏈接和文本正文一點關系也沒有,在提取網頁內容的時候, 也需要過濾這些無用的鏈接。例如某個網站有“產品介紹”頻道,因為導航條在網站內每個網頁都有,若不過濾導航條鏈接,在搜索“產品介紹”的時候,則網站內每個網頁都會搜索到,無疑會帶來大量垃圾信息。過濾這些無效鏈接需要統計大量的網頁結構規律,抽取一些共性,統一過濾;對於一些重要而結果特殊的網站,還需要個別處理。這就需要網絡蜘蛛的設計有一定的擴展性。

對於多媒體、圖片等文件,一般是通過鏈接的錨文本(即,鏈接文本)和相關的文件註釋來判斷這些文件的內容。例如有一個鏈接文字為“張曼玉照片”,其鏈接指向一張bmp格式的圖片,那麽網絡蜘蛛就知道這張圖片的內容是“張曼玉的照片”。這樣,在搜索“張曼玉”和“照片”的時候都能讓搜索引擎找到這張圖片。另外,許多多媒體文件中有文件屬性,考慮這些屬性也可以更好的了解文件的內容。

動態網頁一直是網絡蜘蛛面臨的難題。所謂動態網頁,是相對於靜態網頁而言,是由程序自動生成的頁面,這樣的好處是可以快速統一更改網頁風格,也可以減少網頁所占服務器的空間,但同樣給網絡蜘蛛的抓取帶來一些麻煩。由於開發語言不斷的增多,動態網頁的類型也越來越多,如:asp、jsp、php等。這些類型的網頁對於網絡蜘蛛來說,可能還稍微容易一些。網絡蜘蛛比較難於處理的是一些腳本語言(如VBScript和JavaScript)生成的網頁,如果要完善的處理好這些網頁,網絡蜘蛛需要有自己的腳本解釋程序。對於許多數據是放在數據庫的網站,需要通過本網站的數據庫搜索才能獲得信息,這些給網絡蜘蛛的抓取帶來很大的困難。對於這類網站,如果網站設計者希望這些數據能被搜索引擎搜索,則需要提供一種可以遍歷整個數據庫內容的方法。

對於網頁內容的提取,一直是網絡蜘蛛中重要的技術。整個系統一般采用插件的形式,通過一個插件管理服務程序,遇到不同格式的網頁采用不同的插件處理。這種方式的好處在於擴充性好,以後每發現一種新的類型,就可以把其處理方式做成一個插件補充到插件管理服務程序之中。


更新周期

由於網站的內容經常在變化,因此網絡蜘蛛也需不斷的更新其抓取網頁的內容,這就需要網絡蜘蛛按照一定的周期去掃描網站,查看哪些頁面是需要更新的頁面,哪些頁面是新增頁面,哪些頁面是已經過期的死鏈接。

搜索引擎的更新周期對搜索引擎搜索的查全率有很大影響。如果更新周期太長,則總會有一部分新生成的網頁搜索不到;周期過短,技術實現會有一定難度,而且會對帶寬、服務器的資源都有浪費。搜索引擎的網絡蜘蛛並不是所有的網站都采用同一個周期進行更新,對於一些重要的更新量大的網站,更新的周期短,如有些新聞網站,幾個小時就更新一次;相反對於一些不重要的網站,更新的周期就長,可能一兩個月才更新一次。

一般來說,網絡蜘蛛在更新網站內容的時候,不用把網站網頁重新抓取一遍,對於大部分的網頁,只需要判斷網頁的屬性(主要是日期),把得到的屬性和上次抓取的屬性相比較,如果一樣則不用更新。

同樣的,希望南天網和其它網站的站長都能因此而受益!


作者:網棍@南天網 - SEO與網站營銷交流
南天SEO - 全面知識,免費分享
文章名稱:什麼是網絡蜘蛛,版權所有

53

主題

4

好友

53

積分

居民

專職SEO與LAMP工作

2#
發表於 2011-11-22 15:25:24 |只看該作者

百度百科知識:網絡蜘蛛

當“蜘蛛”程序出現時,現代意義上的搜索引擎才初露端倪。它實際上是一種電腦“機器人”(Computer Robot),電腦“機器人”是指某個能以人類無法達到的速度不間斷地執行某項任務的軟件程序。由於專門用於檢索信息的“機器人”程序就象蜘蛛一樣在網絡間爬來爬去,反反復復,不知疲倦。所以,搜索引擎的“機器人”程序就被稱為“蜘蛛”程序。

關鍵詞:網絡蜘蛛 起源 原理 優化


簡介

概述

  網絡蜘蛛即Web Spider,是一個很形象的名字。把互聯網比喻成一個蜘蛛網,那麽Spider就是在網上爬來爬去的蜘蛛。


作用

  網絡蜘蛛是通過網頁的鏈接地址來尋找網頁,從 網站某一個頁面(通常是首頁)開始,讀取網頁的內容,找到在網頁中的其它鏈接地址,然後通過這些鏈接地址尋找下一個網頁,這樣一直循環下去,直到把這個網 站所有的網頁都抓取完為止。如果把整個互聯網當成一個網站,那麽網絡蜘蛛就可以用這個原理把互聯網上所有的網頁都抓取下來。

       這樣看來,網絡蜘蛛就是一個爬行程序,一個抓取網頁的程序。


起源

概述

       要說網絡蜘蛛的起源,我們還得從搜索引擎說起,什麽是搜索引擎呢?搜索引擎的起源是什麽,這和網絡蜘蛛的起源密切相關。

       搜索引擎指自動從因特網搜集信息,經過一定整理以後,提供給用戶進行查詢的系統。因特網上的信息浩瀚萬千,而且毫無秩序,所有的信息像汪洋上的一個個小島,網頁鏈接是這些小島之間縱橫交錯的橋梁,而搜索引擎,則為你繪制一幅一目了然的信息地圖,供你隨時查閱。

       搜索引擎從1990年原型初顯,到現在成為人們生活中必不可少的一部分,它經歷了太多技術和觀念的變革。

       1994年的1月份,第一個既可搜索又可瀏覽的分類目錄EINetGalaxy上線了。在它之後才出現了雅虎,直至我們現在熟知的Google、百度。但是他們都不是第一個吃搜索引擎這個螃蟹的第一人。從搜索FTP上的文件開始,搜索引擎的原型就出現了,那時還未有萬維網,當時人們先用手工後用蜘蛛程序搜索網頁,但隨著互聯網的不斷壯大,怎樣能夠搜集到的網頁數量更多、時間更短成為了當時的難點和重點,成為人們研究的重點。

搜索引擎原型初顯

  如果要追溯的話,搜索引擎的歷史比WorldWideWeb 還要長。早在Web出現之前,互聯網上就已經存在許多旨在讓人們共享的信息資源了。這些資源當時主要存在於各種允許匿名訪問的FTP 站點。為了便於人們在分散的FTP資源中找到所需的東西,1990年,加拿大麥吉爾大學(McGillUniversity)的幾個大學生開發了一個軟件Archie。它是一個可搜索的FTP文件名列表,用戶必須輸入精確的文件名搜索,然後Archie會告訴用戶哪一個FTP地址可以下載這個文件。Archie實際上是一個大型的數據庫,再加上與這個大型數據庫相關聯的一套檢索方法。Archie雖然還不是搜索引擎,但是從它的工作原理上看,它是所有搜索引擎的祖先。

       當萬維網(WorldWideWeb)出現後,人們可以通過 html傳播網頁信息,網絡上的信息開始成倍增長。人們紛紛使用各種方法將網絡上的信息搜集來,進行分類、整理,以方便查找。現在人們很熟悉的網站雅虎(Yahoo)就是在這個環境下誕生的。還在Stanford大學讀書的美籍華人楊致遠和他的同學迷上了互聯網。他們將互聯網上有趣的網頁搜集過來,與同學一起分享。後來,1994年4月,他們倆共同辦了雅虎。隨著訪問量和收錄鏈接數的增長,雅虎目錄開始支持簡單的數據庫搜索。但是因為雅虎的數據是手工輸入的,所以不能真正被歸為搜索引擎,事實上只是一個可搜索的目錄。

       當“蜘蛛”程序出現時,現代意義上的搜索引擎才初露端倪。它實際上是一種電腦“機器人”(Computer Robot),電腦“機器人”是指某個能以人類無法達到的速度不間斷地執行某項任務的軟件程序。由於專門用於檢索信息的“機器人”程序就象蜘蛛一樣在網絡間爬來爬去,反反復復,不知疲倦。所以,搜索引擎的“機器人”程序就被稱為“蜘蛛”程序。

       這種程序實際是利用html文檔之間的鏈接關系,在Web上一個網頁一個網頁的爬取(crawl),將這些網頁抓到系統來進行分析,並放入數據庫中。第一個開發出“蜘蛛”程序的是Matthew Gray,他於1993年開發了World Wide Web Wanderer,它最初建立時是為了統計互聯網上的服務器數量,到後來發展到能夠捕獲網址。現代搜索引擎的思路就來源於Wanderer,後來很多人在此基礎上對蜘蛛程序進行了改進。

懶得貼了,要看全文請點擊進去吧
http://baike.baidu.com/view/19137.htm


作者:百度百科@南天網 - SEO與網站營銷交流
南天SEO - 全面知識,免費分享
文章名稱:百度百科知識:網絡蜘蛛,百度百科版權所有
回覆

使用道具 舉報

您需要登錄後才可以發表回應 登錄 | 免費註冊

GMT+8, 2024-11-23 21:01

© 2015 SSKYN

回頂部