本帖最後由 江楓 於 2011-6-14 18:52 編輯 . Z* Z$ f; I, X, S0 {' {! x
3 |4 h L: z% Z1 j/ k我們以前是通過次數和邏輯算法來控制的,這樣才能治標治本,如果真想採集你的網站信息的話,其實很簡單.
9 L) ]: y/ l/ } u/ e我在網上找了一個很全面的防採集的方法,參考一下 : R* |1 ~& b. H5 c
8 _) Z5 A( H' s& _' D很多防採集方法在施行的時候需要考慮是否影響搜索引擎對網站的抓取,所以先來分析下一般採集器和搜索引擎爬蟲採集有何不同。
; y6 U7 N. G2 p; y% j* O相同點:a. 兩者都需要直接抓取到網頁源碼才能有效工作,b. 兩者單位時間內會多次大量抓取被訪問的網站內容;c. 宏觀上來講兩者IP都會變動;d. 兩者多沒耐心的去破解你對網頁的一些加密(驗證),比如網頁內容通過js文件加密,比如需要輸入驗證碼才能瀏覽內容,比如需要登錄才能訪問內容等。 * Q. y9 o/ P* {$ L4 H
6 u; g# j9 ?' b% e, k1 i2 E3 l不同點:搜索引擎爬蟲先忽略整個網頁源碼腳本和樣式以及html標籤代碼,然後對剩下的文字部分進行切詞語法句法分析等一系列的複雜處理。而採集器一般是通過html標籤特點來抓取需要的數據,在製作採集規則時需要填寫目標內容的開始標誌何結束標誌,這樣就定位了所需要的內容;或者採用對特定網頁製作特定的正則表達式,來篩選出需要的內容。無論是利用開始結束標誌還是正則表達式,都會涉及到html標籤(網頁結構分析)。
* B8 o$ P( d2 n+ N& R7 _9 M4 e5 {8 S0 s# U; g; S2 C; E; Y
然後再來提出一些防採集方法 / [+ B6 Q; U7 z
1、限制IP地址單位時間的訪問次數 6 Z7 r2 P5 b( j9 w8 f4 n5 n# k
分析:沒有哪個常人一秒鐘內能訪問相同網站5次,除非是程序訪問,而有這種喜好的,就剩下搜索引擎爬蟲和討厭的採集器了。
1 A" D9 }: J8 K弊端:一刀切,這同樣會阻止搜索引擎對網站的收錄
$ {! h4 m3 M( V適用網站:不太依靠搜索引擎的網站 ' j' {2 b' \6 M" O+ r
採集器會怎麼做:減少單位時間的訪問次數,減低採集效率 $ L4 ?; s0 r) M* \& M2 w S- D# Z
) m$ O' K( v+ t% F& f
2、屏蔽ip ! L: [$ w0 O! T, X% g& N
分析:通過後台計數器,記錄來訪者ip和訪問頻率,人為分析來訪記錄,屏蔽可疑Ip。
, G9 e+ E& V6 j4 p0 }弊端:似乎沒神馬弊端,就是站長忙了點
; W' E$ s' W( |' q3 E0 }適用網站:所有網站,且站長能夠知道哪些是google或者百度的機器人
4 J/ V+ U0 ^1 a採集器會怎麼做:打游擊戰唄!利用ip代理採集一次換一次,不過會降低採集器的效率和網速(用代理嘛)。
+ x& W) _3 J# H# h+ k: g- a" v( {3 i
3、利用js加密網頁內容
" Z1 @6 L% O" F4 Z. WNote:這個方法我沒接觸過,只是從別處看來 7 B e8 s' _4 _9 U$ l6 s! r
分析:不用分析了,搜索引擎爬蟲和採集器通殺 * Q. K8 }* X9 B2 u% j
適用網站:極度討厭搜索引擎和採集器的網站
* p3 h, e0 l3 d3 T5 q1 i b採集器會這麼做:你那麼牛,都豁出去了,他就不來采你了
O" G2 c" z$ ]' Z# ^
( J9 T p- C+ P4、網頁裡隱藏網站版權或者一些隨機垃圾文字,這些文字風格寫在css文件中
5 `- g, A8 r+ S7 ~) Y分析:雖然不能防止採集,但是會讓採集後的內容充滿了你網站的版權說明或者一些垃圾文字,因為一般採集器不會同時採集你的css文件,那些文字沒了風格,就顯示出來了。
( o( z& o" o" T! t7 i+ i; i適用網站:所有網站 8 Q: ?& I8 k6 H# r: y% y* S
採集器會怎麼做:對於版權文字,好辦,替換掉。對於隨機的垃圾文字,沒辦法,勤快點了。 7 y4 p/ I# `7 g
+ B/ V# m; C& B; N& ~5、用戶登錄才能訪問網站內容
% w* b. L# n5 U9 `" a分析:搜索引擎爬蟲不會對每個這樣類型的網站設計登錄程序。聽說採集器可以針對某個網站設計模擬用戶登錄提交表單行為。 : r- p! \/ s/ {+ k- g
適用網站:極度討厭搜索引擎,且想阻止大部分採集器的網站
I: ~4 q) x* D- r9 E) A( O採集器會怎麼做:製作擬用戶登錄提交表單行為的模塊
4 N7 ^+ A& b' j$ q* ^. H' k( B+ L% V# i& X3 j& e
6、利用腳本語言做分頁(隱藏分頁) " j$ g. l; f" ]( Z; ]; K1 ^
分析:還是那句,搜索引擎爬蟲不會針對各種網站的隱藏分頁進行分析,這影響搜索引擎對其收錄。但是,採集者在編寫採集規則時,要分析目標網頁代碼,懂點腳本知識的人,就會知道分頁的真實鏈接地址。 ' v V0 c5 S& `6 y# @4 R+ E
適用網站:對搜索引擎依賴度不高的網站,還有,採集你的人不懂腳本知識
! `; F, r) }6 o- v" L採集器會怎麼做:應該說採集者會怎麼做,他反正都要分析你的網頁代碼,順便分析你的分頁腳本,花不了多少額外時間。 ( Q) J" X+ `& ]" j N5 K H
1 ^7 E7 K* X+ \- G- [9 y% X7 w
7、防盜鏈措施(只允許通過本站頁面連接查看,如:Request.ServerVariables(「HTTP_REFERER「) ) - B1 d" C! p+ x8 m# `: q% [
分析:asp和php可以通過讀取請求的HTTP_REFERER屬性,來判斷該請求是否來自本網站,從而來限制採集器,同樣也限制了搜索引擎爬蟲,嚴重影響搜索引擎對網站部分防盜鏈內容的收錄。 E/ x8 G4 Y9 B* g
適用網站:不太考慮搜索引擎收錄的網站 4 V/ U S6 @( H! k; \
採集器會怎麼做:偽裝HTTP_REFERER嘛,不難。
0 K. e$ [: i6 ^7 D+ k
% k8 v4 i) A2 {) C; d8、全flash、圖片或者pdf來呈現網站內容 + O9 m0 I, Q* S$ R. I$ T
分析:對搜索引擎爬蟲和採集器支持性不好,這個很多懂點seo的人都知道
0 ]$ q. X/ }0 t8 F8 Q適用網站:媒體設計類並且不在意搜索引擎收錄的網站 ! h& W+ \3 Y1 N( r+ f& J( o4 C
採集器會怎麼做:不採了,走人
+ B$ f6 N* L) r% m2 l
) c; X! i+ v" b& Z$ g7 Z' b9、網站隨機採用不同模版
/ R( k' s8 P A/ `. g6 U9 j分析:因為採集器是根據網頁結構來定位所需要的內容,一旦先後兩次模版更換,採集規則就失效,不錯。而且這樣對搜索引擎爬蟲沒影響。
6 _* {$ B" I0 d y, z* R; ^+ p適用網站:動態網站,並且不考慮用戶體驗。 / U8 g* W0 h6 i8 Q& S
採集器會怎麼做:一個網站模版不可能多於10個吧,每個模版弄一個規則就行了,不同模版採用不同採集規則。如果多於10個模版了,既然目標網站都那麼費勁的更換模版,成全他,撤。 ; [" n- d6 U& b3 {+ V
8 j6 J' a: ?/ I* a" O6 B& r10、採用動態不規則的html標籤 . \. a @: o, \% o& i8 a; n, q
分析:這個比較變態。考慮到html標籤內含空格和不含空格效果是一樣的,所以< div >和< div >對於頁面顯示效果一樣,但是作為採集器的標記就是兩個不同標記了。如果每次頁面的html標籤內空格數隨機,那麼
5 j1 h$ Y, E, G9 a採集規則就失效了。但是,這對搜索引擎爬蟲沒多大影響。 5 S2 H* M3 {5 J3 K4 X
適合網站:所有動態且不想遵守網頁設計規範的網站。 . J% p2 U' C2 O+ n1 Y
採集器會怎麼做:還是有對策的,現在html cleaner還是很多的,先清理了html標籤,然後再寫採集規則;應該用採集規則前先清理html標籤,還是能夠拿到所需數據。
' D0 a( |0 L m) p+ X2 V1 Y5 T& t0 @ z) s$ F2 j
( F# C! Z3 i! X總結: # z! w( b5 E7 i6 X0 `
一旦要同時搜索引擎爬蟲和採集器,這是很讓人無奈的事情,因為搜索引擎第一步就是採集目標網頁內容,這跟採集器原理一樣,所以很多防止採集的方法同時也阻礙了搜索引擎對網站的收錄,無奈,是吧?以上10條建議雖然不能百分之百防採集,但是幾種方法一起適用已經拒絕了一大部分採集器了。 |
|