前段日子接而連三發現自己站的內容給人採了,有點鬱悶,於是又開始研究防採集的策略,一點想法,在這裡和大家交流一下。
) G7 |5 E* [- h0 e* E- Q9 m [) p, p" z
隨便在網上搜一下「防採集」,會出來N多結果,基本上都差不多。但在實際應用中,很少可以用得上或者難以實現。總結了一下,隨機碼和隨機模版可以防止一些採集系統,我之前的站也這麼做了。但現在的採集器功能實在太強,特別是隨即變量的出現使隨即碼完全沒有了意義,對於隨機模版採集者可能會花多點時間進行研究,但依然是可以採到的。
2 t, i" }9 P; u2 \; g
5 ^) K$ ^8 R5 C' K+ b6 k4 y採集系統的原理基本上都是利用代碼中存在[唯一的開始點]和[唯一的結束點],那麼,想徹底的防止採集,就必須讓代碼沒有[唯一的開始點]和[唯一的結束點]。
8 W, U9 O/ _& S H+ X& Z3 F; A3 e ~# m4 ~, B; ~- N
下面分析一下一般頁面的代碼結構:
- ?3 z0 Z* {- b& \; R1 I
7 G+ c* q& s7 O, x3 v9 {/ `; Z- Q<html>. T1 k/ N" q% C) n+ f, ~) V
<head>
. Q' L$ g; h0 f5 c/ i% O" j5 H<title>標題塊<title>
/ B, S$ n: ?& X+ q: S</head>
, y5 i; _5 N/ H% v, m<body><div class="content">內容塊</div></body>
: W2 n. w. R; l</html>3 M$ B2 s6 x( c+ V. G2 l K' X
$ W3 s, m9 T) |" B) O6 }當然實際頁面中間會複雜很多,這裡只放上基本的結刮乙??析。很容易看出來,採集者採集這篇文章的內容會以<div class="content">開始以</div>結束。那麼,如何讓這些唯一的開始和結束不存在呢?我想到的是讓頁面中存在兩份一模一樣的代碼,那麼無論任何地方都不會有唯一的開始了。至於兩份一模一樣的代碼頁面顯示呈現出來的解決方法可以用DISPLAY或者註釋的辦法讓頁面正常顯示。比方,按上面的例子,我們代碼可以這樣寫:! A: q! N) q: ^$ N/ Z3 x8 u1 p
" w, d4 v" W2 f<html>
! N0 }5 `( @/ A5 `$ d4 V<head>
; P: E( `2 l- A) o) J ]<title>標題塊</title>: \# e: f. `+ N5 p t: J
</head>
1 j, n- C& Y: a3 P<body><div class="content">內容塊</div><div class="other">其他內容</div></body>1 \' I2 s/ o! j' c" }4 Y$ a+ H
</html>3 h' \. D- C- `- ]# N0 j3 x
<!--
0 X! k+ J1 E% w. ]4 i<html>
5 v4 z' D- G4 @4 ?4 R<head>
) m4 n, }6 x$ n4 Y( \) `<title></title>% K n$ p# z% c3 o8 g
</head>
" K n2 t! ^2 S f8 b2 _9 Y8 ?8 ~<body><div class="content"></div><div class="other"></div></body>
' [6 |' G, D: A8 n& g</html>7 ]! _6 l1 f/ t) i' a/ f
-->+ R/ }+ l4 A/ ]/ p9 q" }
' U* b( y- Q, {. \
上面的是實際上的頁面代碼,下面的是以這篇文章的模版代碼註釋多一次。
( v v: U0 w2 P$ C5 z# B y. b5 @
1 J! m% Y5 a8 A# H+ ^或許你會說,這塊內容
n/ A0 v# H. s: z. f( h4 ]2 G7 U
! S' Z6 i6 O9 @8 m+ _0 M% S+ [' r<!--
' c* D, X% K( M<html> A9 M8 e9 Z1 G7 a( z* N. T% j# X- R
<head>( h. ]" @1 b. q/ |
<title></title>0 w* A2 @8 H. x& s( v3 g
</head>1 B! n3 n7 V; J7 ~ |
<body><div class="content">
9 s' [* ?6 Q7 x2 e+ L( N1 j! l+ B- c) w
是唯一的,然而實際上的頁面會比這個複雜非常多,會多出非常的內容塊,也就是說中間會有非常非常多的變量。7 K/ q" L* I2 \; v
U+ \- o! Y* y$ f4 ? 事實上,這種方法只是一個思路,第二份代碼可以不需要是整個頁面的複製品,而只是某一部分。當然這樣的方法同樣存在弊端(或許任何事得到一些注定要失去一些),就是會讓頁面的體積增大 ;] 如果不是將代碼複製一份而是將整個頁面內容複製一份出來,搜索引擎會不會認為EMU呢...... |
|