前段日子接而連三發現自己站的內容給人採了,有點鬱悶,於是又開始研究防採集的策略,一點想法,在這裡和大家交流一下。
/ D0 l' i: [/ X5 @/ P* c& T) ?6 i ^- ^9 U4 N
隨便在網上搜一下「防採集」,會出來N多結果,基本上都差不多。但在實際應用中,很少可以用得上或者難以實現。總結了一下,隨機碼和隨機模版可以防止一些採集系統,我之前的站也這麼做了。但現在的採集器功能實在太強,特別是隨即變量的出現使隨即碼完全沒有了意義,對於隨機模版採集者可能會花多點時間進行研究,但依然是可以採到的。! \$ O4 T! U, m1 M9 w0 q5 E$ o q
6 g2 ^5 a# e+ i2 @2 O2 z" s q
採集系統的原理基本上都是利用代碼中存在[唯一的開始點]和[唯一的結束點],那麼,想徹底的防止採集,就必須讓代碼沒有[唯一的開始點]和[唯一的結束點]。
7 q; u( \( D) S; D, \1 B2 C% ~
6 u' l7 W! [4 n1 c) f 下面分析一下一般頁面的代碼結構:
+ n1 _! T: i0 G" v6 b; I" j: O( D* t F
6 ~# G; F) c2 x, J% F3 x( T3 u9 e( k<html>6 _: A' N P* G8 g( @0 ]: K
<head>! p: U; O1 k4 n8 H2 H6 t: k
<title>標題塊<title>
K+ w5 h3 V7 R; G. P</head>/ ]9 n. V$ M$ C0 _
<body><div class="content">內容塊</div></body>
( }6 z$ X* J2 X7 E</html>
) g; c" W$ \1 r0 L- x
. ]1 e7 v: V. ^3 r; J% |. v. P當然實際頁面中間會複雜很多,這裡只放上基本的結刮乙??析。很容易看出來,採集者採集這篇文章的內容會以<div class="content">開始以</div>結束。那麼,如何讓這些唯一的開始和結束不存在呢?我想到的是讓頁面中存在兩份一模一樣的代碼,那麼無論任何地方都不會有唯一的開始了。至於兩份一模一樣的代碼頁面顯示呈現出來的解決方法可以用DISPLAY或者註釋的辦法讓頁面正常顯示。比方,按上面的例子,我們代碼可以這樣寫:- ~6 e5 n1 Q" V; w, p* p
( o% U0 K& N5 d; Z/ u8 V<html> D7 M' K+ E6 m4 P
<head>
0 v. l( K' [ F- V/ J4 D<title>標題塊</title>5 p" x; ^# T+ T
</head>4 {) B8 K$ z, Y( p+ e7 ?$ P7 t
<body><div class="content">內容塊</div><div class="other">其他內容</div></body>
3 F# k' J6 o( d* V2 `& o% z</html>' S, _% |# {# _0 ?" K4 x, q3 C
<!--+ }$ M" i) n' s+ ^: d3 }/ p
<html>
8 j( @0 K9 ]% _1 O3 N1 p<head>1 H$ w5 k: U3 D. \
<title></title>
# u# b, ]' J: O( e; P</head>. z2 ^3 y+ m2 m# N# b9 T) P
<body><div class="content"></div><div class="other"></div></body> Q9 L8 e0 w% l: q6 Z
</html>
: G# U" l& F3 [- T2 I' l) H, s-->
( ]( x! C; M! L$ H$ E: g$ O" G
! D/ L: t* b$ e8 V上面的是實際上的頁面代碼,下面的是以這篇文章的模版代碼註釋多一次。
0 G; ]9 B# }+ J% n1 z
9 k% u0 M% I( w0 o, l或許你會說,這塊內容
2 a3 |& b% |5 h3 }) k6 @
+ r) j% ]& v% l6 ]6 O) X<!--
* R f- V3 u4 f<html>% q) l" g# d! k
<head>
8 r1 q. \) Z( ]: i. L6 e<title></title> d" H9 a; p( R' A; U
</head>( t, |- i0 k1 P
<body><div class="content">
. s8 G- X1 Z4 N9 h g0 A% n; |% D! }( ~7 m/ y
是唯一的,然而實際上的頁面會比這個複雜非常多,會多出非常的內容塊,也就是說中間會有非常非常多的變量。- C+ J7 k4 ]) L- \' {3 T; f
8 E/ @) [! s9 A: e
事實上,這種方法只是一個思路,第二份代碼可以不需要是整個頁面的複製品,而只是某一部分。當然這樣的方法同樣存在弊端(或許任何事得到一些注定要失去一些),就是會讓頁面的體積增大 ;] 如果不是將代碼複製一份而是將整個頁面內容複製一份出來,搜索引擎會不會認為EMU呢...... |
|