前段日子接而連三發現自己站的內容給人採了,有點鬱悶,於是又開始研究防採集的策略,一點想法,在這裡和大家交流一下。6 {2 m- f1 l, U8 C" E( G
4 Y0 B- [7 e9 d6 ~6 Q |0 r# r
隨便在網上搜一下「防採集」,會出來N多結果,基本上都差不多。但在實際應用中,很少可以用得上或者難以實現。總結了一下,隨機碼和隨機模版可以防止一些採集系統,我之前的站也這麼做了。但現在的採集器功能實在太強,特別是隨即變量的出現使隨即碼完全沒有了意義,對於隨機模版採集者可能會花多點時間進行研究,但依然是可以採到的。
& P) }8 ]9 |$ h: [# n+ ^8 E
9 y3 O( C0 I. s採集系統的原理基本上都是利用代碼中存在[唯一的開始點]和[唯一的結束點],那麼,想徹底的防止採集,就必須讓代碼沒有[唯一的開始點]和[唯一的結束點]。( E3 G$ Z9 }" T# u0 Y0 W5 i
) c/ \0 h& I5 m0 E5 o/ M 下面分析一下一般頁面的代碼結構:
& i1 h0 }3 O. r( @
6 I0 o5 y* |/ I) D% @* _* y" U<html>, N! I4 w' |! b+ R
<head>9 u% x. t2 [' g- u+ R( v
<title>標題塊<title>+ I; u5 R- A W! W l7 i6 j0 g
</head>
- d# J- q! H" m: \0 x0 J# Q! U/ n) a<body><div class="content">內容塊</div></body>8 X* f3 _* S% ~) a" y) u6 i5 y& N
</html>7 r0 N9 h- T+ ]4 R
+ h7 R. U9 L% [: Y ^- t當然實際頁面中間會複雜很多,這裡只放上基本的結刮乙??析。很容易看出來,採集者採集這篇文章的內容會以<div class="content">開始以</div>結束。那麼,如何讓這些唯一的開始和結束不存在呢?我想到的是讓頁面中存在兩份一模一樣的代碼,那麼無論任何地方都不會有唯一的開始了。至於兩份一模一樣的代碼頁面顯示呈現出來的解決方法可以用DISPLAY或者註釋的辦法讓頁面正常顯示。比方,按上面的例子,我們代碼可以這樣寫:3 d4 S# q7 B5 b4 y! m
* }4 _% t2 d7 O9 |) {/ Q
<html>+ Q( E) \3 t, m2 M
<head>: J5 w; Q b/ d$ P' |5 ]
<title>標題塊</title>
" J, K: ]( ^; C, L. f4 O; k7 T/ S' u</head>9 G( G8 A5 U0 p1 V
<body><div class="content">內容塊</div><div class="other">其他內容</div></body>
) w- w. E! w: Q8 K" V4 d</html>
4 s( t7 N7 C* T s5 O) d& b<!--' z9 v+ N/ [# f& F
<html>
2 T; f/ v; ~2 d- R<head>' N& T1 e+ t3 i6 V" E' S$ s& n, w
<title></title>$ T4 Q+ W8 t8 I' Y- B# b3 v; P
</head>1 x# F- y f# c- J6 ?5 F2 o4 n" U
<body><div class="content"></div><div class="other"></div></body>
l& M; q V/ y8 d r: B</html>
9 l0 o: \, t$ N- P4 J: ~0 ^+ n& ^--># h5 L- A( ]7 S, P
7 S0 d1 w& g7 I+ G4 ?- T! }- X6 Z上面的是實際上的頁面代碼,下面的是以這篇文章的模版代碼註釋多一次。
& Y: _1 g* X: X7 j; p+ Q
5 k# Q) A0 V! j+ X/ }或許你會說,這塊內容
6 c+ X, {- C/ E9 H
' w- @7 H r( s<!--4 U/ l9 J, J: m2 a
<html>7 i1 A$ Q& c( q7 }0 {
<head>
& o3 j* j+ a( _6 ^9 S/ [: O X- i<title></title>5 o0 n5 m" H/ `& V, \& g
</head>3 e2 c0 a" A2 x/ F" Z8 x( L
<body><div class="content">
# l- i6 O7 i3 C9 N5 F6 ~6 ^" D" N' O) c* I! p- \ e* n2 f
是唯一的,然而實際上的頁面會比這個複雜非常多,會多出非常的內容塊,也就是說中間會有非常非常多的變量。
, |, d4 D% j& u% [! [$ O# r) K* h9 X/ R A5 y
事實上,這種方法只是一個思路,第二份代碼可以不需要是整個頁面的複製品,而只是某一部分。當然這樣的方法同樣存在弊端(或許任何事得到一些注定要失去一些),就是會讓頁面的體積增大 ;] 如果不是將代碼複製一份而是將整個頁面內容複製一份出來,搜索引擎會不會認為EMU呢...... |
|