蜘蛛爬行、抓取網(wǎng)頁
搜索引擎的基礎(chǔ)是有大量網(wǎng)頁的信息數(shù)據(jù)庫,這是決定搜索引擎整體質(zhì)量的一個重要指標(biāo)。如果搜索引擎的網(wǎng)頁信息量小,那么供用戶選擇的搜索結(jié)果就會少,而大量的網(wǎng)頁信息能更好地滿足用戶的搜索需求。
要獲得大量網(wǎng)頁信息的數(shù)據(jù)庫,搜索引擎就必須收集網(wǎng)絡(luò)資源,可以通過搜索引擎的網(wǎng)絡(luò)漫游器(Crawler)在互聯(lián)網(wǎng)中各個網(wǎng)頁爬行并抓取信息。這是一種爬行并收集信息的
程序,通常搜索引擎稱為蜘蛛(Spider)或者機器人(Bot)。
每個搜索引擎的蜘蛛或者機器人都有不同的IP,并有自己的代理名稱。通常在網(wǎng)絡(luò)日志中可以看到不同IP及代理名稱的搜索引擎蜘蛛。在如下代碼中,220.181.108.89就是搜索引擎蜘蛛的IP,BaiduSpider、Sogou+Web+Spider、Googlebot、SosoSpider、bingbot分別表示百度蜘蛛、搜狗蜘蛛、谷歌機器人、搜搜蜘蛛、Bing機器人。這些都是各個搜索引擎蜘蛛的代理名稱,是區(qū)分搜索引擎的重要標(biāo)志。
220.181.108.89
Mozilla/5.0+(compatible;+BaiduSpider/2.0;++http://www.baidu.com/search/Spider.html)
220.181.89.182
Sogou+Web+Spider/4.0(+http://www,sogou.com/docs/help/Webmasters.htm#07)
66.249.73.103
Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.Google.com/bot.html)
124.115.0.108
Mozilla/5.0(compatible;+SosoSpider/2.0;++http://help.soso.com/WebSpider
.htm)
65.55.52.97
Mozilla/5.0+(compatible;+bingbot/2.0;++http://www.bing.com/bingbot.htm)
110.75.172.113 Yahoo!+Slurp+China
搜索引擎蜘蛛雖然名稱不同,但是其爬行和抓取的規(guī)則大致相同。
(1)搜索引擎在抓取網(wǎng)頁時會同時運行很多蜘蛛程序,根據(jù)搜索引擎地址庫中的網(wǎng)址對網(wǎng)站進行瀏覽抓取。地址庫中的網(wǎng)址包含用戶提交的網(wǎng)址、大型導(dǎo)航站的網(wǎng)址、人工收錄的網(wǎng)址、蜘蛛爬行到的新網(wǎng)址等。
(2)搜索引擎蜘蛛爬行到網(wǎng)站,首先會檢查網(wǎng)站的根目錄下是否有Robots.txt文件,若有Robots文件,則根據(jù)其中的約定不抓取被禁止的網(wǎng)頁。如果網(wǎng)站整體禁止某搜索引象
抓取,那么該搜索引擎將不再抓取網(wǎng)站內(nèi)容,如果不小心把Robots文件設(shè)置錯誤,就可會造成網(wǎng)站內(nèi)容不能被收錄。(3)進入允許抓取的網(wǎng)站,搜索引整蜘蛛一般會采取深度優(yōu)先、寬度優(yōu)先和最佳優(yōu)先
三種策略進行爬行遍歷,以有序地抓取到網(wǎng)站的更多內(nèi)容。
深度優(yōu)先的爬行策略是搜索引擎蜘蛛在一個網(wǎng)頁發(fā)現(xiàn)一個鏈接,順著這個鏈接爬到下一個網(wǎng)頁,在這個網(wǎng)頁中又沿一個鏈接爬下去,直到?jīng)]有未爬行的鏈接,然后回到第一個網(wǎng)頁,沿另一個鏈接一直爬下去。深度優(yōu)先的爬行策略,搜索引擎蜘蛛進入網(wǎng)站首頁,沿著鏈接爬行到網(wǎng)頁A1,在A1中找到鏈接爬行到網(wǎng)頁A2,再沿著A2中的鏈接爬行到A3,然后依次爬行到A4、A5……直到?jīng)]有滿足爬行條件的網(wǎng)頁時,搜索引擎蜘蛛再回到首頁;氐绞醉摰闹┲氚凑胀瑯拥姆绞嚼^續(xù)爬行網(wǎng)頁B1及更深層的網(wǎng)頁,爬行完同樣再回到首頁爬行下一個鏈接,最后爬行完所有的頁面。
寬度優(yōu)先的爬行策略是搜索引擎蜘蛛來到一個網(wǎng)頁后不會沿著一個鏈接一直爬行下去,而是每層的鏈接爬行完后再爬行下一層網(wǎng)頁的鏈接。寬度優(yōu)先的爬行策略。搜索引擎蜘蛛來到網(wǎng)站首頁,在首頁中發(fā)現(xiàn)第一層網(wǎng)頁A、B、C的鏈接并爬行完,再依次爬行網(wǎng)頁A、B、C的下一層網(wǎng)頁A1、A2、A3、B1、B2、B3……爬行完第二層的網(wǎng)頁后,再爬行第三層網(wǎng)頁A4、A5、A6……,最后爬行完所有的網(wǎng)頁層。最佳優(yōu)先爬行策略是按照一定的算法劃分網(wǎng)頁的重要等級,主要通過PageRank、網(wǎng)站規(guī)模、反應(yīng)速度等來判斷網(wǎng)頁重要等級,搜索引擎對等級較高的進行優(yōu)先爬行和抓取。PageRank 等級達到一定程度時才能被爬行和抓取。實際蜘蛛在爬行網(wǎng)頁時會將頁面所有的鏈接收集到地址庫中,并對其進行分析,篩選出PR較高的鏈接進行爬行抓取。在網(wǎng)站規(guī)模方面,通常大網(wǎng)站能獲得搜索引擎更多的信任,而且大網(wǎng)站更新頻率快,蜘蛛會優(yōu)先爬行。網(wǎng)站的反應(yīng)速度也是影響蜘蛛爬行的重要因素,在最佳優(yōu)先爬行策略中,網(wǎng)站的反應(yīng)速度快,能提高蜘蛛的工作效率,因此蜘蛛也會優(yōu)先爬行反應(yīng)快的網(wǎng)站。
這三種爬行策略都有優(yōu)點,也有一定的缺點。例如,深度優(yōu)先一般會選擇一個合適的深度,以避免陷入巨大數(shù)據(jù)量中,也就使得抓取的網(wǎng)頁量受到了限制;寬度優(yōu)先隨著抓取網(wǎng)頁的增多,搜索引擎要排除大量的無關(guān)網(wǎng)頁鏈接,爬行的效率將變低;最佳優(yōu)先會忽視很多小網(wǎng)站的網(wǎng)頁,影響了互聯(lián)網(wǎng)信息差異化的發(fā)展,流量幾乎進入大網(wǎng)站,小網(wǎng)站難以發(fā)展。
在搜索引擎蜘蛛的實際爬行中,一般同時利用這三種爬行策略,經(jīng)過一段時間的爬行,搜索引擎蜘蛛能爬行完互聯(lián)網(wǎng)的所有網(wǎng)頁。但是由于互聯(lián)網(wǎng)資源龐大,搜索引擎的資源有限,通常只爬行抓取互聯(lián)網(wǎng)中的一部分網(wǎng)頁。
(4)蜘蛛爬行了網(wǎng)頁后,會進行一個檢測,以判斷網(wǎng)頁的價值是否達到抓取標(biāo)準(zhǔn)。搜索引擎爬行到網(wǎng)頁后,會判斷網(wǎng)頁中的信息是否是垃圾信息,如大量重復(fù)文字的內(nèi)容、亂碼、與已收錄內(nèi)容高度重復(fù)等。這些垃圾信息蜘蛛不會抓取,僅僅是爬行而已。
(5)搜索引擎判斷完網(wǎng)頁的價值后,會對有價值的網(wǎng)頁進行收錄。這個收錄過程就是將網(wǎng)頁的抓取信息存入到信息數(shù)據(jù)庫中,并按一定的特征對網(wǎng)頁信息分類,以URL為單位存儲。搜索引擎的爬行和抓取是提供搜索服務(wù)的基礎(chǔ)條件,有了大量的網(wǎng)頁數(shù)據(jù),搜索引擎才能更好地滿足用戶的查詢需求。
|