摘要:動(dòng)態(tài)網(wǎng)站豐富了網(wǎng)站的功能,但是對于搜索引擎來(lái)說(shuō),情況就不同了,動(dòng)態(tài)頁(yè)面是在用戶(hù)“輸入內容”或者進(jìn)行“選擇”時(shí)動(dòng)態(tài)生成的,但是搜索引擎的“搜索機器人”無(wú)法“輸入”和“選擇”。另外,搜索引擎要避免“搜索機器人陷阱(spider traps)”的腳本錯誤。
一、動(dòng)態(tài)網(wǎng)站的出現和優(yōu)勢
最早互聯(lián)網(wǎng)出現時(shí),站點(diǎn)內容都是以HTML靜態(tài)頁(yè)面形式存放在服務(wù)器上,訪(fǎng)問(wèn)者瀏覽到的頁(yè)面都是這些實(shí)際存在的靜態(tài)頁(yè)面。隨著(zhù)技術(shù)的發(fā)展,特別是數據庫和腳本技術(shù)PERL、ASP、PHP和JSP的發(fā)展,越來(lái)越多的站點(diǎn)都開(kāi)始采取動(dòng)態(tài)的頁(yè)面發(fā)布手段。比如,我們在GOOGLE.COM上搜索一個(gè)內容,得到的搜索結果頁(yè)面文件"本身"在GOOGLE服務(wù)器上并不存在,而是通過(guò)程序在我們輸入搜索內容時(shí)調用后臺數據庫實(shí)時(shí)生成的,也就是說(shuō),這些結果頁(yè)面是動(dòng)態(tài)的。
靜態(tài)頁(yè)面的站點(diǎn)只涉及文件的傳輸問(wèn)題,而動(dòng)態(tài)站點(diǎn)則復雜得多,用戶(hù)和站點(diǎn)之間出現大量的交互,網(wǎng)站不再僅僅是內容的發(fā)布,而是成為了一種"應用(Application)",是軟件業(yè)向互聯(lián)網(wǎng)上的擴張,從軟件的角度看,動(dòng)態(tài)站點(diǎn)是邏輯應用層和數據層的分離,數據庫負責站點(diǎn)數據的存儲管理,而ASP、PHP、JSP等負責處理站點(diǎn)的邏輯應用。這樣做的好處除了增加很多交互功能外,更重要的是站點(diǎn)的維護、更新和升級都方便了許多??梢哉f(shuō),沒(méi)有動(dòng)態(tài)網(wǎng)站技術(shù),目前互聯(lián)網(wǎng)上的這些超大型站點(diǎn)就不可能出現。
二、搜索引擎抓取動(dòng)態(tài)網(wǎng)站頁(yè)面時(shí)面臨的問(wèn)題
從用戶(hù)的角度看,動(dòng)態(tài)網(wǎng)站非常不錯,豐富了站點(diǎn)的功能,但是對于搜索引擎來(lái)說(shuō),情況就不同了。(關(guān)于搜索引擎和分類(lèi)目錄的區別,以及搜索引擎的工作原理,請? "了解搜索引擎")
根本的問(wèn)題在于"輸入"和"選擇",動(dòng)態(tài)頁(yè)面是在用戶(hù)"輸入內容"或者進(jìn)行"選擇"時(shí)動(dòng)態(tài)生成的,但是搜索引擎的"搜索機器人"無(wú)法"輸入"和"選擇"。比如我們要在當當書(shū)店站點(diǎn)查看馮英健的《網(wǎng)絡(luò )營(yíng)銷(xiāo)基礎與實(shí)踐》一書(shū),介紹頁(yè)面是動(dòng)態(tài)生成的,URL地址是:http://www.dangdang.com/product_detail/product_detail.asp?product_id=493698
這里在"?"后面的product_id參數值需要我們輸入的,"搜索機器人"可以通過(guò)鏈接找到http://www.dangdang.com/product_detail/product_detail.asp 頁(yè)面,但是它無(wú)法輸入"?"后面的product_id參數值,從而無(wú)法抓取這個(gè)頁(yè)面文件。
另外,對于通過(guò)鏈接達到這種帶"?"的頁(yè)面,技術(shù)上搜索引擎可以抓取,但是一般情況下搜索引擎選擇不去抓取,這是為了避免一種叫"搜索機器人陷阱(spider traps)"的腳本錯誤,這種錯誤會(huì )讓搜索機器人進(jìn)行無(wú)限循環(huán)的抓取,無(wú)法退出而浪費時(shí)間。
三、動(dòng)態(tài)網(wǎng)站的搜索引擎策略
動(dòng)態(tài)網(wǎng)站要被搜索引擎抓取,可以采用內容發(fā)布系統軟件將動(dòng)態(tài)站點(diǎn)轉化成靜態(tài)頁(yè)面,這種辦法對于頁(yè)面發(fā)布后變動(dòng)少的站點(diǎn)比較合適,比如一些新聞類(lèi)的站點(diǎn)(如新浪的新聞中心:http://news.sina.com.cn/ )。
一般的動(dòng)態(tài)網(wǎng)站可以通過(guò)下面的辦法讓搜索引擎抓?。?br>首先,我們要讓動(dòng)態(tài)頁(yè)面的URL地址中沒(méi)有"?",讓動(dòng)態(tài)頁(yè)面看上去象"靜態(tài)頁(yè)面"??纯聪旅孢@個(gè)頁(yè)面http://www.amazon.com/exec/obidos/tg/detail/-/043935806X/ ,這明顯是一個(gè)動(dòng)態(tài)頁(yè)面,但是URL地址看上去卻象"靜態(tài)頁(yè)面"。針對不同的動(dòng)態(tài)技術(shù)可以采用下面技術(shù)實(shí)現:
·對于采用ASP技術(shù)的動(dòng)態(tài)頁(yè)面Exception Digital公司提供一種工具叫著(zhù)XQASP(http://www.xde.net/products/product_xqasp.htm )可以將"?"替換為"/"。
·對于采用ColdFusion技術(shù)的站點(diǎn),需要重新配置服務(wù)器上的ColdFusion,用"/"代替"?"將參數傳輸到URL,更詳細的信息請見(jiàn)http://coldfusion.com/ 站點(diǎn)。
·對于使用Apache服務(wù)器的站點(diǎn),可以使用rewrite模塊將帶參數的URL地址轉換成搜索引擎支持的形式,該模塊mod_rewrite在A(yíng)pache服務(wù)器中不是缺省安裝的,詳細的信息請見(jiàn)http://httpd.apache.org/docs/mod/mod_rewrite.html 。
對于其他的動(dòng)態(tài)技術(shù)也能找到對應的方法改變URL的形式。
然后,要創(chuàng )建一些靜態(tài)頁(yè)面指向這些動(dòng)態(tài)頁(yè)面(以改變過(guò)的URL鏈接)。
前面說(shuō)過(guò),搜索引擎機器人并不會(huì )自己"輸入"參數,所以要讓上面這些動(dòng)態(tài)頁(yè)面被搜索引擎抓取,我們還需要告訴機器人這些頁(yè)面的地址(也就是參數)。我們可以創(chuàng )建一些靜態(tài)的頁(yè)面,一般在網(wǎng)絡(luò )營(yíng)銷(xiāo)中稱(chēng)? "gateway page"(入口頁(yè)面),這些頁(yè)面上有大量指向這些動(dòng)態(tài)頁(yè)面的鏈接。
將這些入口頁(yè)面的地址提交到搜索引擎,這些頁(yè)面和鏈接的動(dòng)態(tài)頁(yè)面(改變過(guò)URL形式)就能都被搜索引擎抓取了。
四、搜索引擎對動(dòng)態(tài)網(wǎng)站支持的改進(jìn)
在我們調整動(dòng)態(tài)站點(diǎn)適應搜索引擎的同時(shí),搜索引擎也在發(fā)展。到目前為止,絕大多數的搜索引擎還不支持動(dòng)態(tài)頁(yè)面的抓取,但是GOOGLE、HOTBOT等和國內的百度開(kāi)始嘗試抓取動(dòng)態(tài)網(wǎng)站頁(yè)面(包括? "?"的頁(yè)面),這就是我們現在在這些搜索引擎進(jìn)行搜索時(shí),結果中出現動(dòng)態(tài)鏈接的原因。
這些搜索引擎抓取動(dòng)態(tài)頁(yè)面時(shí),為了避免"搜索機器人陷阱",都只抓取從靜態(tài)頁(yè)面(至少"看上去"是靜態(tài)的頁(yè)面)鏈接到的動(dòng)態(tài)頁(yè)面,而從動(dòng)態(tài)頁(yè)面鏈接出的動(dòng)態(tài)頁(yè)面都不再抓取。
所以一個(gè)動(dòng)態(tài)站點(diǎn)如果只針對上面這些搜索引擎,可以在上面小節介紹方法的基礎上簡(jiǎn)化:只用創(chuàng )建一些入口頁(yè)面,鏈接很多動(dòng)態(tài)頁(yè)面,然后將這些入口頁(yè)面遞交到這些搜索引擎就可以了。
對于直接使用動(dòng)態(tài)的URL地址,請注意:
·文件URL中不要有Session Id,同時(shí)不要用ID作為參數名稱(chēng)(特別是對于GOOGLE);
·參數越少越好,盡量不要超過(guò)2個(gè);
·能在URL中不用參數盡量不要用,一些參數轉移到其他地方,這樣可以增加動(dòng)態(tài)頁(yè)面被抓取的深度和數目。

