搜索引擎用來(lái)爬行和訪問(wèn)頁(yè)面的程序被稱為蜘蛛工,也稱為機(jī)器人(bot)。搜索引擎蜘蛛訪問(wèn)網(wǎng)站頁(yè)面時(shí)類似于普通用戶使用的瀏覽器。蜘蛛程序發(fā)出頁(yè)面訪問(wèn)請(qǐng)求后,服務(wù)器返回HTML代碼,蜘蛛程序把收到的代 碼存
搜索引擎用來(lái)爬行和訪問(wèn)頁(yè)面的程序被稱為蜘蛛工,也稱為機(jī)器人(bot)。搜索引擎蜘蛛訪問(wèn)網(wǎng)站頁(yè)面時(shí)類似于普通用戶使用的瀏覽器。蜘蛛程序發(fā)出頁(yè)面訪問(wèn)請(qǐng)求后,服務(wù)器返回HTML代碼,蜘蛛程序把收到的代 碼存入原始頁(yè)面數(shù)據(jù)庫(kù)。搜索引擎為了提高爬行和抓取速度,都使用多個(gè)蜘蛛并發(fā)分布爬行?! ∫弧obots.txt文件 蜘蛛訪問(wèn)任何一個(gè)網(wǎng)站時(shí),都會(huì)先訪問(wèn)網(wǎng)站根目錄下的robots.txt文件。如果robots.txt文件禁止搜素引擎抓取某些文件或目錄。蜘蛛將 遵守協(xié)議,不抓取被禁止的網(wǎng)址。 和瀏覽器一樣,搜索引擎蜘蛛也有標(biāo)明自己身份的代理名稱,站長(zhǎng)可以在日志文件中看到搜索引擎的特定代理名稱,從而辨識(shí)搜索引擎蜘 蛛。下面列出常見(jiàn)的搜索引攀蜘蛛名稱: 二、跟蹤鏈接 為了抓取網(wǎng)上盡量多的頁(yè)面,搜索引擎蜘蛛會(huì)跟蹤頁(yè)面上的鏈接,從一個(gè)頁(yè)面爬到下一個(gè)頁(yè)面,就好像蜘蛛在蜘蛛網(wǎng)上爬行那樣,這也就 是搜索引擎蜘蛛這個(gè)名稱的由來(lái)。 整個(gè)互聯(lián)網(wǎng)是由相互鏈接的網(wǎng)站及頁(yè)面組成的。從理論上說(shuō),蜘蛛從任何一個(gè)頁(yè)面出發(fā),順著鏈接都可以爬行到網(wǎng)上的所有頁(yè)面。當(dāng)然, 由于網(wǎng)站及頁(yè)面鏈接結(jié)構(gòu)異常復(fù)雜,蜘蛛需要采取一定的爬行策略才能遍歷網(wǎng)上所有頁(yè)面。 最簡(jiǎn)單的爬行遍歷策略分為兩種,一種是深度優(yōu)先,另一種是廣度優(yōu)先?! ∷^深度優(yōu)先,指的是蜘蛛沿著發(fā)現(xiàn)的鏈接一直向前爬行,直到前面再也沒(méi)有其他鏈接,然后返回到第一個(gè)頁(yè)面,沿著另一個(gè)鏈接再一直 往前爬行?! ≈┲敫欐溄樱瑥腁頁(yè)面爬行到Al,A2,A3,A4,到A4頁(yè)面后,己經(jīng)沒(méi)有其他鏈接可以跟蹤就返回A頁(yè)面,順著頁(yè)面上的另一個(gè)鏈接,爬行 到B1,B2,B3,B4。在深度優(yōu)先策略中,蜘蛛一直爬到無(wú)法再向前,才返回爬另一條線?! V度優(yōu)先是指蜘蛛在一個(gè)頁(yè)面上發(fā)現(xiàn)多個(gè)鏈接時(shí),不是順著一個(gè)鏈接一直向前,而是把頁(yè)面上所有第一層鏈接都爬一遍,然后再沿著第二 層頁(yè)面上發(fā)現(xiàn)的鏈接爬向第三層頁(yè)面。比如,我的一個(gè)站點(diǎn),股票入門(mén)大家可以去看下,研究下?! ∵€有就是蜘蛛從A頁(yè)面順著鏈接爬行到Al,B1,C1頁(yè)面,直到A頁(yè)面上的所有鏈接都爬行完,然后再?gòu)腁1頁(yè)面發(fā)現(xiàn)的下一層鏈接,爬行到A2 ,A3,A4,從理論上說(shuō),無(wú)論是深度優(yōu)先還是廣度優(yōu)先,只要給蜘蛛足夠的時(shí)間,都能爬完整個(gè)互聯(lián)網(wǎng)。在實(shí)際工作中,蜘蛛的帶寬資源 ,時(shí)間都不是無(wú)限的。也不可能爬完所有頁(yè)面。實(shí)際上最大的搜索引擎也只是爬行和收錄了互聯(lián)網(wǎng)的一小部分。