如今的采集系統(tǒng)是一個(gè)比一個(gè)nb,站長(zhǎng)們辛苦收集制作的網(wǎng)站內(nèi)容總是很快出現(xiàn)在在另一個(gè)網(wǎng)站上,一個(gè)網(wǎng)站輕易的就被復(fù)制了又復(fù)制。有辦法既不影響搜索引擎的正常收入又能解決網(wǎng)站被采集之苦么?答案是肯定的。
最常用的防采集方法:
1.每個(gè)文章的命名不要有任何規(guī)律,比如你的文章是<%=id%>.htm的話,請(qǐng)?jiān)谇懊婊蚝竺嫔蓚€(gè)日期,如:20070911-1234.htm,前面的就是日期了,這樣對(duì)采集新手來(lái)說(shuō)是非常有效的。
2.不要把所有的文章都放在一個(gè)目錄下,你可以利用日期生成不同的目錄名。
3.不要所有的文章都用一個(gè)模板,制作盡量多的模板,添文章的時(shí)候可有選要用哪個(gè)模板,一般采集者的采集程序是有針對(duì)性的,他在采集前會(huì)對(duì)你的頁(yè)面進(jìn)行分析,如果你所有的頁(yè)面排版無(wú)規(guī)律可尋,那么我想他就會(huì)放棄了。
以上三種方法能防住初級(jí)采集的,但是對(duì)高手來(lái)說(shuō)沒(méi)什么用。
下面三種方法用限制采集人的ip或session的方法來(lái)達(dá)到防采集的目的。
方法一:(asp代碼):
第二種方法(asp):
第三種方法:
用persistence為靜態(tài)頁(yè)面增加session功能
一般來(lái)說(shuō),只有服務(wù)器端的cgi程序(asp、php、jsp)具有session會(huì)話功能,用來(lái)保存用戶(hù)在網(wǎng)站期間(會(huì)話)的活動(dòng)數(shù)據(jù)信息,而對(duì)于數(shù)量眾多的靜態(tài)頁(yè)面(html)來(lái)說(shuō),只能使用客戶(hù)端的cookies來(lái)保存臨時(shí)活動(dòng)數(shù)據(jù),但對(duì)于cookies的操作是個(gè)很煩瑣的過(guò)程,遠(yuǎn)沒(méi)有對(duì)于session操作那樣簡(jiǎn)便。為此,本文向讀者推薦一種在dhtml中的解決方案“persistence技術(shù)”,使得在靜態(tài)頁(yè)面中也能使用session會(huì)話功能。
microsoft internet explorer 5瀏覽器和以后的版本都支持使用狀態(tài)保持(persistence)技術(shù),讓我們能夠在當(dāng)前會(huì)話過(guò)程中保存一些數(shù)據(jù)對(duì)象到客戶(hù)端,減少了對(duì)服務(wù)器的訪問(wèn)請(qǐng)求,充分發(fā)揮了客戶(hù)端計(jì)算機(jī)的數(shù)據(jù)處理能力,從而也整體提升了頁(yè)面顯示效率。
persistence技術(shù)有以下幾種行為可供調(diào)用:
· savefavorite—當(dāng)頁(yè)面被添加到收藏夾時(shí)保存頁(yè)面狀態(tài)和信息
· savehistory—在當(dāng)前會(huì)話中保存頁(yè)面狀態(tài)和信息
· savesnapshot—當(dāng)頁(yè)面被保存到硬盤(pán)時(shí),保存頁(yè)面狀態(tài)和信息
· userdata—在當(dāng)前會(huì)話中用xml格式保存頁(yè)面狀態(tài)和信息
persistence技術(shù)打破了以前使用cookies和session的傳統(tǒng),繼承了cookies的一些安全策略,同時(shí)也增加了存儲(chǔ)和管理數(shù)據(jù)的能力。我們的每個(gè)頁(yè)面有64kb的用戶(hù)數(shù)據(jù)存儲(chǔ)容量,對(duì)于每個(gè)站點(diǎn)總計(jì)有640kb的存儲(chǔ)上限。
persistence技術(shù)存儲(chǔ)的數(shù)據(jù)格式符合x(chóng)ml標(biāo)準(zhǔn),所以可以使用dom技術(shù)中的getattribute和setattribute方法來(lái)存取數(shù)據(jù)。
下面是一個(gè)persistence技術(shù)的典型應(yīng)用,通過(guò)對(duì)persistence存儲(chǔ)數(shù)據(jù)的分析,使得靜態(tài)頁(yè)面具有驗(yàn)證功能。
實(shí)際判斷過(guò)程是這樣的:
1.有三個(gè)對(duì)象:游客v、導(dǎo)航頁(yè)面a、內(nèi)容頁(yè)面c
2.游客v只能通過(guò)導(dǎo)航頁(yè)面a的鏈接才能看到內(nèi)容頁(yè)面c;
3.如果游客v是通過(guò)其它途徑來(lái)訪問(wèn)內(nèi)容頁(yè)面c(比如通過(guò)其它網(wǎng)站的超鏈接、直接在ie地址欄中輸入網(wǎng)址訪問(wèn)等),內(nèi)容頁(yè)面c將自動(dòng)提示版權(quán)信息,顯示空白頁(yè)。
具體實(shí)現(xiàn)步驟:
· 在“導(dǎo)航頁(yè)面”中加入一個(gè)style用來(lái)定義persistent類(lèi),同時(shí)加入存儲(chǔ)函數(shù)fnsave用來(lái)授權(quán)。
· 在“導(dǎo)航頁(yè)面”的<body>和</body>區(qū)域中定義一個(gè)層用來(lái)標(biāo)識(shí)persistence對(duì)象
<div class=userdata id="opersistdiv"></div>
· 在“導(dǎo)航頁(yè)面”的超鏈接屬性中加入一條語(yǔ)句用來(lái)調(diào)用函數(shù)fnsave:
<a href='redhat2.htm' onmousedown="fnsave()">
接下來(lái),為“內(nèi)容頁(yè)面”加入驗(yàn)證功能。
· 在“內(nèi)容頁(yè)面”中加入一個(gè)style用來(lái)定義persistent類(lèi),同時(shí)加入存儲(chǔ)函數(shù)fnload用來(lái)判斷合法性。
· 修改“內(nèi)容頁(yè)面”的區(qū)域如下:
***插入以上代碼的頁(yè)面需在同一個(gè)文件夾下,否則會(huì)出錯(cuò)。
從以上范例可看出,通過(guò)persistence的使用,使得普通的靜態(tài)內(nèi)容頁(yè)面具有了session功能,一般的不敏感信息完全可以通過(guò)session保存在客戶(hù)端。
使用多個(gè)帶有session功能的靜態(tài)頁(yè)面可以完成眾多復(fù)雜任務(wù),如虛擬購(gòu)物車(chē),高級(jí)搜索引擎等。同時(shí),由于將以前服務(wù)器端承擔(dān)的部分session任務(wù)轉(zhuǎn)移到客戶(hù)端,減少了數(shù)據(jù)交互量,大大降低了服務(wù)器的負(fù)擔(dān)。
新聞熱點(diǎn)
疑難解答
圖片精選