雨哲淺談關(guān)于防采集而不影響收錄內(nèi)容篇
更新時(shí)間:2008年04月29日 22:27:36 作者:
防采集是很麻煩而且累人的事,你做的再好,別人要采還得采。累人就在于要防別人采集,還要不影響搜索引擎收錄(大部分個(gè)人站長(zhǎng)的站的生存都寄于百度和Google)。所以要防采集,就得先不影響收錄,所以我們先要分析到如何分辨搜索爬蟲(chóng)。
讓站長(zhǎng)最頭痛的事,除了程序和服務(wù)器安全外,可能就要算內(nèi)容被采集了。當(dāng)然,現(xiàn)在網(wǎng)絡(luò)本身就是資源共享,我這里不談采集的對(duì)錯(cuò),只是就防采集說(shuō)說(shuō)個(gè)人看法。
一、如何分辨搜索爬蟲(chóng)
以前,在網(wǎng)上看到過(guò)關(guān)于用asp代碼來(lái)捕捉搜索爬蟲(chóng)的代碼,通過(guò)代碼把爬蟲(chóng)的訪問(wèn)記錄記錄到文件。就此代碼(原作者未知)我作了修改,加入程序中防采集?,F(xiàn)做成函數(shù),直接在頁(yè)面中調(diào)用。
Function CheckSearchRobots(SearchRobotsAgent)
CheckSearchRobots = False
'自定義搜索爬蟲(chóng),因篇幅關(guān)系,這里只是加入國(guó)內(nèi)主要搜索引擎爬蟲(chóng)部分記錄
Dim SearchRobots:SearchRobots="Baidu@Baidu|Google@Google|crawler@alexa|Yahoo@Yahoo|sohu@Sohu|MSN@MSN|QihooBot@Qihoo"
dim ArrSearchRobots,ArrSearchRobots2,SearchRobotsTrue,SearchRobotsName,iSearchRobots
SearchRobotsTrue = False
ArrSearchRobots = split(SearchRobots,chr(124))
For iSearchRobots = 0 To Ubound(ArrSearchRobots)
ArrSearchRobots2 = split(ArrSearchRobots(iSearchRobots),"@")
If Instr(lcase(SearchRobotsAgent),lcase(ArrSearchRobots2(0))) > 0 then
SearchRobotsTrue=true:SearchRobotsName=ArrSearchRobots2(1):exit for
End If
Next
If SearchRobotsTrue and len(SearchRobotsName)>0 then'如果是爬蟲(chóng),就更新爬蟲(chóng)信息
CheckSearchRobots = True
End If
End Function
將以上代碼放在asp程序中(具體如何放置請(qǐng)參考相關(guān)文章),然后在需要調(diào)用的地方作如下調(diào)用: If CheckSearchRobots(SearchRobotsAgent) = False Then
Response.Write "非搜索引擎,可作部分限制!" '這里可以加入判斷指定時(shí)間的刷新次數(shù),比如在正常情況下,訪問(wèn)速度是N次/分,如果超過(guò)這個(gè)次數(shù)(超常規(guī)訪問(wèn))就可以限制了。
End If
二、限制超常規(guī)訪問(wèn)。
下面說(shuō)說(shuō)如何限制別人的超常規(guī)訪問(wèn)。下面代碼來(lái)源于互聯(lián)網(wǎng)(原作者未能找到)。我作了部分修改和說(shuō)明。
Sub CheckAppeal()
Dim AppealNum,AppealCount
AppealNum=10 '同一IP60秒內(nèi)請(qǐng)求限制次數(shù)
'雨哲[Yz81.Com]站長(zhǎng)測(cè)試結(jié)果一,如果限制為10次,動(dòng)易采集結(jié)果,一分鐘能采集成功12篇,失敗8篇。
'雨哲[Yz81.Com]站長(zhǎng)測(cè)試結(jié)果二,如果限制為8次,動(dòng)易采集結(jié)果,一分鐘能采集成功9篇,失敗11篇。
AppealCount=Request.Cookies(AppealCookies)
If AppealCount="" Then
Response.Cookies(AppealCookies)=1
AppealCount=1
response.cookies(AppealCookies).expires=dateadd("s",60,now())
Else
response.Cookies(AppealCookies)=AppealCount+1
response.cookies(AppealCookies).expires=dateadd("s",60,now())
End If
if int(AppealCount)>int(AppealNum) then
Response.Write "兄弟,爬了這么久,歇會(huì)兒吧,別累壞了身體!"
'這里的提示完全可以自定義,我的做法是另外轉(zhuǎn)到一個(gè)和當(dāng)前文章模板完全一致的頁(yè)面,當(dāng)然內(nèi)容是自定義的。
'有興趣的朋友也可以采集<a class="channel_keylink" >雨哲</a>在線的http://www.yz81.com/wanzhuan/頻道下面的文章。
Response.end
End If
End Sub
將以上代碼放在asp程序中(具體如何放置請(qǐng)參考相關(guān)文章),然后在需要調(diào)用的地方作如下調(diào)用:
Call CheckAppeal()
一、如何分辨搜索爬蟲(chóng)
以前,在網(wǎng)上看到過(guò)關(guān)于用asp代碼來(lái)捕捉搜索爬蟲(chóng)的代碼,通過(guò)代碼把爬蟲(chóng)的訪問(wèn)記錄記錄到文件。就此代碼(原作者未知)我作了修改,加入程序中防采集?,F(xiàn)做成函數(shù),直接在頁(yè)面中調(diào)用。
復(fù)制代碼 代碼如下:
Function CheckSearchRobots(SearchRobotsAgent)
CheckSearchRobots = False
'自定義搜索爬蟲(chóng),因篇幅關(guān)系,這里只是加入國(guó)內(nèi)主要搜索引擎爬蟲(chóng)部分記錄
Dim SearchRobots:SearchRobots="Baidu@Baidu|Google@Google|crawler@alexa|Yahoo@Yahoo|sohu@Sohu|MSN@MSN|QihooBot@Qihoo"
dim ArrSearchRobots,ArrSearchRobots2,SearchRobotsTrue,SearchRobotsName,iSearchRobots
SearchRobotsTrue = False
ArrSearchRobots = split(SearchRobots,chr(124))
For iSearchRobots = 0 To Ubound(ArrSearchRobots)
ArrSearchRobots2 = split(ArrSearchRobots(iSearchRobots),"@")
If Instr(lcase(SearchRobotsAgent),lcase(ArrSearchRobots2(0))) > 0 then
SearchRobotsTrue=true:SearchRobotsName=ArrSearchRobots2(1):exit for
End If
Next
If SearchRobotsTrue and len(SearchRobotsName)>0 then'如果是爬蟲(chóng),就更新爬蟲(chóng)信息
CheckSearchRobots = True
End If
End Function
將以上代碼放在asp程序中(具體如何放置請(qǐng)參考相關(guān)文章),然后在需要調(diào)用的地方作如下調(diào)用: If CheckSearchRobots(SearchRobotsAgent) = False Then
Response.Write "非搜索引擎,可作部分限制!" '這里可以加入判斷指定時(shí)間的刷新次數(shù),比如在正常情況下,訪問(wèn)速度是N次/分,如果超過(guò)這個(gè)次數(shù)(超常規(guī)訪問(wèn))就可以限制了。
End If
二、限制超常規(guī)訪問(wèn)。
下面說(shuō)說(shuō)如何限制別人的超常規(guī)訪問(wèn)。下面代碼來(lái)源于互聯(lián)網(wǎng)(原作者未能找到)。我作了部分修改和說(shuō)明。
復(fù)制代碼 代碼如下:
Sub CheckAppeal()
Dim AppealNum,AppealCount
AppealNum=10 '同一IP60秒內(nèi)請(qǐng)求限制次數(shù)
'雨哲[Yz81.Com]站長(zhǎng)測(cè)試結(jié)果一,如果限制為10次,動(dòng)易采集結(jié)果,一分鐘能采集成功12篇,失敗8篇。
'雨哲[Yz81.Com]站長(zhǎng)測(cè)試結(jié)果二,如果限制為8次,動(dòng)易采集結(jié)果,一分鐘能采集成功9篇,失敗11篇。
AppealCount=Request.Cookies(AppealCookies)
If AppealCount="" Then
Response.Cookies(AppealCookies)=1
AppealCount=1
response.cookies(AppealCookies).expires=dateadd("s",60,now())
Else
response.Cookies(AppealCookies)=AppealCount+1
response.cookies(AppealCookies).expires=dateadd("s",60,now())
End If
if int(AppealCount)>int(AppealNum) then
Response.Write "兄弟,爬了這么久,歇會(huì)兒吧,別累壞了身體!"
'這里的提示完全可以自定義,我的做法是另外轉(zhuǎn)到一個(gè)和當(dāng)前文章模板完全一致的頁(yè)面,當(dāng)然內(nèi)容是自定義的。
'有興趣的朋友也可以采集<a class="channel_keylink" >雨哲</a>在線的http://www.yz81.com/wanzhuan/頻道下面的文章。
Response.end
End If
End Sub
將以上代碼放在asp程序中(具體如何放置請(qǐng)參考相關(guān)文章),然后在需要調(diào)用的地方作如下調(diào)用:
Call CheckAppeal()
相關(guān)文章
關(guān)于無(wú)限分級(jí)(ASP+數(shù)據(jù)庫(kù)+JS)的實(shí)現(xiàn)代碼
關(guān)于無(wú)限分級(jí)(ASP+數(shù)據(jù)庫(kù)+JS)的實(shí)現(xiàn)代碼...2007-05-05
ASP 包含文件中的路徑問(wèn)題和使用單一數(shù)據(jù)庫(kù)連接文件的解決方案
全站只需要用一個(gè)數(shù)據(jù)庫(kù)連接文件的實(shí)現(xiàn)函數(shù)代碼2009-03-03
Asp 操作Access數(shù)據(jù)庫(kù)時(shí)出現(xiàn)死鎖.ldb的解決方法
在一天某個(gè)時(shí)間段內(nèi)打不開(kāi),等待好幾分鐘就會(huì)說(shuō)asp腳本超時(shí),但FTP可以登陸進(jìn)去,查看數(shù)據(jù)庫(kù)目錄時(shí),發(fā)現(xiàn)與數(shù)據(jù)庫(kù)(我的數(shù)據(jù)庫(kù)是access數(shù)據(jù)庫(kù))同名的記錄鎖定信息文件 (.ldb文件)一直都在那里2009-04-04

