前段日子接而連三發現自己站的內容給人採了,有點鬱悶,於是又開始研究防採集的策略,一點想法,在這裡和大家交流一下。) q$ x; o+ X# m6 H
0 M8 w' j1 t2 y5 u
隨便在網上搜一下「防採集」,會出來N多結果,基本上都差不多。但在實際應用中,很少可以用得上或者難以實現。總結了一下,隨機碼和隨機模版可以防止一些採集系統,我之前的站也這麼做了。但現在的採集器功能實在太強,特別是隨即變量的出現使隨即碼完全沒有了意義,對於隨機模版採集者可能會花多點時間進行研究,但依然是可以採到的。
) ]5 D9 @) c- ]4 i7 f
7 \3 n& d6 w. W9 d採集系統的原理基本上都是利用代碼中存在[唯一的開始點]和[唯一的結束點],那麼,想徹底的防止採集,就必須讓代碼沒有[唯一的開始點]和[唯一的結束點]。
( S! S) R* h0 }# G. f8 N
/ C4 v. ~# B1 r, x$ p2 R( i 下面分析一下一般頁面的代碼結構:) O ^5 F* v2 o0 B# i5 P/ m
+ n# }4 D1 @9 z: I* Z
<html>7 ?6 ~! v, {/ s1 l5 q$ ^( U: W
<head>7 m9 v5 U. |3 t9 F
<title>標題塊<title>' n; [& I5 O' Y! x
</head>, H6 i# c1 C' H! ]0 l @/ L. o
<body><div class="content">內容塊</div></body>' {: P& Y' u `4 C+ C
</html>( c4 w g& Z' O3 Q8 u2 j
# D |, l- O1 j; _* s5 h! r8 v
當然實際頁面中間會複雜很多,這裡只放上基本的結刮乙??析。很容易看出來,採集者採集這篇文章的內容會以<div class="content">開始以</div>結束。那麼,如何讓這些唯一的開始和結束不存在呢?我想到的是讓頁面中存在兩份一模一樣的代碼,那麼無論任何地方都不會有唯一的開始了。至於兩份一模一樣的代碼頁面顯示呈現出來的解決方法可以用DISPLAY或者註釋的辦法讓頁面正常顯示。比方,按上面的例子,我們代碼可以這樣寫:: z: P& U; F6 a" b2 z: H
# Z, t. R) U# R<html>
2 F& L' {% Q( H# i7 w' g<head>
% W, n' b1 `1 o* b% Z<title>標題塊</title>
; Q3 L( c( h" z9 l</head>% o+ @% u* i4 y: n
<body><div class="content">內容塊</div><div class="other">其他內容</div></body>: L2 Y/ N( ?/ A0 k
</html>
$ l2 _* m& o( n<!--5 T( a4 e, R+ m# S& u
<html>
" A& c9 Y9 }! T" L9 g. Y+ ^1 ~<head>
9 L0 u( \0 o# S* G7 V<title></title>$ H! j" a4 t; {/ w; [9 d' g
</head>
1 g) w; m% g4 m- f7 @8 U<body><div class="content"></div><div class="other"></div></body>" f" b4 C9 _. ]$ X0 R0 \# \" _2 s
</html>
5 G6 N0 n! H' E0 A3 z, d* Z-->
1 S& a& K! _; e
5 H# T3 V9 p1 Y, _; ^0 d上面的是實際上的頁面代碼,下面的是以這篇文章的模版代碼註釋多一次。 ~ K& g* _5 d/ {
4 t# \, d! t" `$ N或許你會說,這塊內容
; ^2 `1 v/ e5 f+ g' K4 r6 M* ?# `+ D. g6 w2 K/ N2 c4 W
<!--
' C9 V" v6 s% u, H7 a, k, ?) m<html>5 V% M' E0 ^* n8 D! ~4 z6 S
<head>
& O, U* S# e4 {7 ^* P4 [7 C/ ~<title></title>' E# a* e0 o% R' e3 w( N& C4 a
</head>
$ J+ w1 o" d' F' s) ?% {<body><div class="content">
3 V# ]. M/ b$ H5 q
; u9 `% K! C' c3 Q A( k是唯一的,然而實際上的頁面會比這個複雜非常多,會多出非常的內容塊,也就是說中間會有非常非常多的變量。
& d; x6 c0 H% N5 Z. Q1 P2 Z% W* |0 P6 M" q" j# {
事實上,這種方法只是一個思路,第二份代碼可以不需要是整個頁面的複製品,而只是某一部分。當然這樣的方法同樣存在弊端(或許任何事得到一些注定要失去一些),就是會讓頁面的體積增大 ;] 如果不是將代碼複製一份而是將整個頁面內容複製一份出來,搜索引擎會不會認為EMU呢...... |
|