時(shí)間:2022-08-24 12:33:01 | 來(lái)源:建站知識(shí)
時(shí)間:2022-08-24 12:33:01 來(lái)源:建站知識(shí)
什么是蜘蛛,也叫爬蟲,其實(shí)是一段程序。這個(gè)程序的功能是,沿著你的網(wǎng)站的URL一層層的讀取一些信息,做簡(jiǎn)單處理后,然后返饋給后臺(tái)老板(服務(wù)器)進(jìn)行集中處理。我們必需了解蜘蛛的喜好,對(duì)網(wǎng)站優(yōu)化才能做到更好。接下來(lái)我們談?wù)勚┲氲墓ぷ鬟^(guò)程。
一、蜘蛛遇到的麻煩
蜘蛛也會(huì)遇到麻煩?是的,做人有做人的難處,做蜘蛛有做蜘蛛的麻煩!處理動(dòng)態(tài)網(wǎng)頁(yè)信息一直是網(wǎng)絡(luò)蜘蛛面臨的難題。所謂動(dòng)態(tài)網(wǎng)頁(yè),是指由程序自動(dòng)生成的頁(yè)面。由于現(xiàn)在開(kāi)發(fā)語(yǔ)言不斷增多,所開(kāi)發(fā)出來(lái)的動(dòng)態(tài)網(wǎng)頁(yè)類型也越來(lái)越多,如asp、jsp、php等。這些類型的網(wǎng)頁(yè)是不經(jīng)編譯的,直接解釋的語(yǔ)言,比如我們的IE就是一個(gè)強(qiáng)大的解釋器;而對(duì)于網(wǎng)絡(luò)蜘蛛來(lái)說(shuō),處理這些語(yǔ)言可能還稍微容易一些。網(wǎng)絡(luò)蜘蛛真正比較難于處理的是一些腳本語(yǔ)言(如VBscript和Javascript)生成的網(wǎng)頁(yè),這就是我們?cè)谧鼍W(wǎng)站優(yōu)化時(shí),為什么反復(fù)強(qiáng)調(diào)盡量不要采用JS代碼,因?yàn)槿绻晟频靥幚砗眠@些網(wǎng)頁(yè),網(wǎng)絡(luò)蜘蛛需要有自己的腳本解釋程序。整個(gè)蜘蛛系統(tǒng)一般采用插件的形式,通過(guò)一個(gè)插件管理服務(wù)程序,遇到不同格式的網(wǎng)頁(yè)采用不同的插件處理。而加載這些腳本程序?qū)?yè)面進(jìn)么處理,無(wú)疑是增加了蜘蛛程序的時(shí)間復(fù)雜度,換句話說(shuō)調(diào)用這些插件就是太浪費(fèi)蜘蛛寶貴的時(shí)間了。所以,做為一個(gè)SEOer,所要做的一項(xiàng)工作是進(jìn)行網(wǎng)站優(yōu)化,減少不必要的腳本代碼,以利蜘蛛爬行!
二、蜘蛛的更新周期
世界永遠(yuǎn)是動(dòng)態(tài)的,也就是說(shuō)是不斷變化的;當(dāng)然一個(gè)網(wǎng)站的內(nèi)容也是經(jīng)常變化的,不是更新就是改模板。一個(gè)智能的爬蟲也需要不斷地更新其抓取網(wǎng)頁(yè)的內(nèi)容,也叫更新網(wǎng)頁(yè)快照。因此蜘蛛的開(kāi)發(fā)者會(huì)為爬蟲設(shè)定一個(gè)更新周期(連這個(gè)也是由一個(gè)動(dòng)態(tài)算法所決定的,這就是我們常說(shuō)的算法更新),讓其按照指定的時(shí)間去掃描網(wǎng)站,查看對(duì)比出哪些頁(yè)面是需要進(jìn)行更新工作的,諸如:主頁(yè)的標(biāo)題是否有更改,哪些頁(yè)面是網(wǎng)站新增頁(yè)面,哪些頁(yè)面是已經(jīng)過(guò)期失效的死鏈接等等。一個(gè)功能強(qiáng)太的搜索引擎的更新周期是不斷優(yōu)化的,因?yàn)樗阉饕娴母轮芷趯?duì)搜索引擎搜索的查全率有很大影響。不過(guò)如果更新周期過(guò)長(zhǎng),便會(huì)使搜索引擎的搜索精確性和完整性降低,會(huì)有一些新生成的網(wǎng)頁(yè)搜索不到;若更新周期太過(guò)于短,則技術(shù)實(shí)現(xiàn)難度加大,而且會(huì)對(duì)帶寬、服務(wù)器的資源造成浪費(fèi)。所以,一個(gè)靈活的搜索引擎的更新周期顯得猶為重要,更新周期是搜索引擎永恒的話題;也是程序員和SEO不斷要研究的課題。
三、蜘蛛的爬行策略
在上面我們介紹上蜘蛛怕什么和更新周期這兩個(gè)話題,現(xiàn)在我們步入關(guān)鍵的主題:爬行策略。
1.逐層抓取策略
搜索引擎通過(guò)WEB爬蟲來(lái)收集網(wǎng)頁(yè),這個(gè)過(guò)程是一個(gè)算法,具體可參考圖和樹(shù)的兩種數(shù)據(jù)結(jié)構(gòu)。我們知道一個(gè)站點(diǎn)只有一個(gè)首頁(yè),這是蜘蛛爬行開(kāi)始抓取的地方。從最開(kāi)始的首頁(yè)獲取該站點(diǎn)的頁(yè)面,接著提取主頁(yè)面里的所有鏈接(即內(nèi)鏈),再根據(jù)新的鏈接獲取新的頁(yè)面并提取新頁(yè)面里的鏈接,重復(fù)這個(gè)過(guò)程,直到整站的葉子節(jié)點(diǎn)(即每一個(gè)欄目下面子欄目的內(nèi)容頁(yè)面)這就是爬蟲進(jìn)行頁(yè)面收集的過(guò)程。由于很多Web站點(diǎn)的網(wǎng)頁(yè)信息量過(guò)大,如果這樣爬往往要爬很久,所以站點(diǎn)頁(yè)面的獲取在一個(gè)大的方向上是逐層抓取的,比如,只有兩層采用逐層抓取策略,這樣可以避免對(duì)信息提取的“陷入”,使得WEB爬蟲的效率過(guò)低。因此,現(xiàn)在的WEB爬蟲在爬行中采用的遍歷算法主要是圖論中的廣度優(yōu)先算法和最佳優(yōu)先算法,而深度優(yōu)先算法由于容易引起提取的“陷入”而較少地使用。
2、不重復(fù)抓取策略
萬(wàn)維網(wǎng)上的網(wǎng)頁(yè)數(shù)量非常大,所以對(duì)其進(jìn)行抓取是一個(gè)巨大工程,網(wǎng)頁(yè)的抓取需要花費(fèi)非常多線路帶寬、硬件資源、時(shí)間資源等等。如果經(jīng)常對(duì)同一個(gè)網(wǎng)頁(yè)重復(fù)抓取不但會(huì)大大的降低了系統(tǒng)的效率,還造成精確度不高等問(wèn)題。通常的搜索引擎系統(tǒng)都設(shè)計(jì)了不重復(fù)進(jìn)行網(wǎng)頁(yè)抓取的策略,這是為了保證在一定時(shí)間段內(nèi)只對(duì)同一個(gè)網(wǎng)頁(yè)進(jìn)行一次抓取。
B-樹(shù)學(xué)名:平衡多路查找樹(shù),這一原理廣泛地應(yīng)用于操作系統(tǒng)的算法中。B-樹(shù)的查找算法也完全可以用來(lái)設(shè)計(jì)搜索引擎中不重復(fù)抓取URL的匹配算法(就是對(duì)比)。
上述文字、過(guò)程、方法來(lái)源廣州SEO中心(官網(wǎng):)所有,轉(zhuǎn)載請(qǐng)注明或保留本段文字。
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。