|
防止网站被爬虫抓取的方法有哪些
8 C4 M& H6 V1 P5 x
& z% n+ T) s& g# {0 e3 L: ^防止网站被爬虫抓取的方法有哪些
/ K( T3 N4 Y) p L6 w9 o; n" E& i; m9 ]- e" m, @" I6 ]
对于网络爬虫,我们是既爱又恨。一方面爬虫可以带来客观的流量,另一方面又会占用服务器资源。因此在面对爬虫时,进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢?
! ~* N! V$ z3 t+ |
# j: q3 ` h9 q- x# V m: M一、分辨爬虫的善恶, F) G E4 V5 w8 D/ Q* B
1 y1 a1 }8 e7 c) c
网络爬虫分为两种,一种是善意爬虫,例如百度、Google等搜索引擎的爬虫,另一种是恶意爬虫,它可能会利用网站漏洞,非法窃取网站数据,或者爬取网站内容,占用服务器资源。恶意爬虫的行为是我们所深恶痛觉的,必须想尽办法予以过滤和阻断。网站或者某一些网页不想被诸如百度、Googl等善意爬虫爬取时,我们也希望能采取一些措施。
) ]# k% P/ E5 l/ R+ x4 k
/ k' @! E- n8 C& s7 ~- k5 p二、如何防止网站被爬虫?
& y, ]3 C& H, g5 `' g* D }9 t4 U+ k' N! q9 j- X" h
针对善意爬虫,几乎所有的搜索引擎爬虫,都会遵守robots协议,只要我们在网站的根目录下存放一个ASCII编码的文本文件,告诉搜索引擎哪些页面不能爬取,搜索引擎的蜘蛛便会遵照协议,不爬取指定页面的内容。6 `, t& }( }! C* ^1 Z" v# Z
) K; Q& c3 I2 t4 E+ H; l
但是robots并不是一个规范,而是一种君子协议,它只对善意爬虫有效,并不能防止恶意爬虫。
" H, O, D1 u4 z) h# ]9 l9 W$ ~+ f$ s) Q: Y. H5 M9 D
针对恶意爬虫,我们可以采取以下措施来识别和阻断它。* T1 D/ e8 t. g8 L) D
, u9 o: q$ z) O& ?( U0 H1.限制User-Agent字段
! C m# g7 h/ Q8 T M8 A* u6 c5 B8 U9 i5 d8 E5 B( \
User-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息。
; N) z) ]4 h$ M( z5 k8 H
( x3 B: f# {7 Y( oUser-Agent字段虽然有效,但对于精心构造的爬虫来说,效果并不好。攻击者可以通过在恶意爬虫请求的User-Agent字段中带上baidu字符,伪装成百度爬虫绕过这一规则,无法被拦截。
: D3 i: `7 F9 }. ]
+ d8 t) N1 P: g/ j7 A. f* l2.限制IP
# S( U9 i7 Q S' X" C; x! v% i* f
% \; r, } I4 i( ?9 U% j( Z" k限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。 E6 g' Z/ w! h
( H$ Y; U, h* ]3 ]' ^
不过限制IP也有自己的缺点,容易误伤正常用户,攻击者可以通过搭建IP池的方法,来解决这个问题。3 W/ ~$ f, [6 ]8 U7 o- @2 }
u" [, l" p* U$ {* J* }3. 添加验证码( D8 H l6 e6 A: P, r7 C; c( d1 h' D
" M* f6 j$ @9 K( m. i* F在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。
! c- i9 w6 }0 ~/ _2 K0 y+ R% h* ~, w; O
: G# ?, ]* c" G# ?( h' c
6 }1 S! T/ k$ ^+ n z原文连接:http://www.szw86.com/thread-9831-1-1.html |
|