|
防止网站被爬虫抓取的方法有哪些
8 {1 N# a/ c2 D ?2 |- E+ R8 I2 U7 ~; i" U* J
防止网站被爬虫抓取的方法有哪些
* A. K' ]5 q% d4 Q" M, X% \) j0 g* j( v+ ?
对于网络爬虫,我们是既爱又恨。一方面爬虫可以带来客观的流量,另一方面又会占用服务器资源。因此在面对爬虫时,进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢?
; h2 P1 s. Q6 ~+ Q, |/ _& J B2 B j
9 f7 Y( k' X8 A一、分辨爬虫的善恶! F1 b& t+ _0 H' A5 @3 \: m8 d' u
2 \; ?' H/ {2 r2 D/ q4 J7 b* [网络爬虫分为两种,一种是善意爬虫,例如百度、Google等搜索引擎的爬虫,另一种是恶意爬虫,它可能会利用网站漏洞,非法窃取网站数据,或者爬取网站内容,占用服务器资源。恶意爬虫的行为是我们所深恶痛觉的,必须想尽办法予以过滤和阻断。网站或者某一些网页不想被诸如百度、Googl等善意爬虫爬取时,我们也希望能采取一些措施。
$ m) @4 g) e. `4 o# W) j: G5 L/ }+ v, [; k! \
二、如何防止网站被爬虫?9 E* ~, l+ p$ v J% y; ^0 B0 ]
+ P4 e2 p: t: `1 h6 S/ {/ }8 K针对善意爬虫,几乎所有的搜索引擎爬虫,都会遵守robots协议,只要我们在网站的根目录下存放一个ASCII编码的文本文件,告诉搜索引擎哪些页面不能爬取,搜索引擎的蜘蛛便会遵照协议,不爬取指定页面的内容。5 P8 p4 `0 t0 R( Q4 V
7 p: N9 O+ d6 w$ r5 J4 O但是robots并不是一个规范,而是一种君子协议,它只对善意爬虫有效,并不能防止恶意爬虫。
V3 | A* s: G3 W, F
y8 A, i2 L" ^9 `. c# W针对恶意爬虫,我们可以采取以下措施来识别和阻断它。
8 g: K+ I" T4 k; n/ |8 Q& U w8 h& E% D
1.限制User-Agent字段9 ~, Q0 i* N) R% |! z0 z1 M! J4 B
3 [6 J9 m# D3 T) v5 B u: q
User-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息。
& |! _* S+ M, e, H
" \) ~- y6 |0 l/ w5 m, _; ]7 aUser-Agent字段虽然有效,但对于精心构造的爬虫来说,效果并不好。攻击者可以通过在恶意爬虫请求的User-Agent字段中带上baidu字符,伪装成百度爬虫绕过这一规则,无法被拦截。
; `- j7 }/ J# A0 e
5 L f5 ^; Y2 Y% E p+ s% ], q2.限制IP
# U# I8 Z. ~' C% N# H( @3 M( R3 }( s8 ]& l- R9 `7 |- W7 v1 O
限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。- I& Q3 [. N5 o5 U% i L0 \( N; d
5 c9 Q8 x% T/ H! s$ Y: P4 i
不过限制IP也有自己的缺点,容易误伤正常用户,攻击者可以通过搭建IP池的方法,来解决这个问题。
$ m5 ^$ H3 d5 w! U: D! r [. n
. z& [; A; M2 t4 y8 p( Q3. 添加验证码& q+ i. R) k5 }; ?4 a
5 T, H: E6 M. G8 ` x. v
在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。* @0 N6 A9 l$ ~/ ]# {* d4 f8 l9 Z
) m# a6 b7 B- N0 F% ^
6 `# U1 X- l$ {
% p- _ t4 O d9 z1 H4 d! k! S原文连接:http://www.szw86.com/thread-9831-1-1.html |
|