|
防止网站被爬虫抓取的方法有哪些
; y: Q* \+ ]) {& B: S6 i9 B
1 h7 }4 q" w& y防止网站被爬虫抓取的方法有哪些
, F b9 q& L* k- g- [
% f% C, o. a7 I! b5 b对于网络爬虫,我们是既爱又恨。一方面爬虫可以带来客观的流量,另一方面又会占用服务器资源。因此在面对爬虫时,进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢?+ O" z( z: x9 z+ x- ]5 ?( N* m
; E8 T% l$ q2 e4 |' y8 n) u
一、分辨爬虫的善恶# x' k ]. a L0 @8 V3 o6 G/ j
# }& w4 k, a; L3 c! _$ B6 h# g
网络爬虫分为两种,一种是善意爬虫,例如百度、Google等搜索引擎的爬虫,另一种是恶意爬虫,它可能会利用网站漏洞,非法窃取网站数据,或者爬取网站内容,占用服务器资源。恶意爬虫的行为是我们所深恶痛觉的,必须想尽办法予以过滤和阻断。网站或者某一些网页不想被诸如百度、Googl等善意爬虫爬取时,我们也希望能采取一些措施。
, a. p5 M' W* e! ?" m1 ?4 W5 p6 D5 _8 B! ^* Z. d8 \
二、如何防止网站被爬虫?
9 e) x* E; x7 @1 t5 J p/ ~% L- i6 ~( [& y6 k* M5 G& g
针对善意爬虫,几乎所有的搜索引擎爬虫,都会遵守robots协议,只要我们在网站的根目录下存放一个ASCII编码的文本文件,告诉搜索引擎哪些页面不能爬取,搜索引擎的蜘蛛便会遵照协议,不爬取指定页面的内容。" Y' d, Z; r F
( C6 H" H6 @' C5 V% O3 U/ c6 S
但是robots并不是一个规范,而是一种君子协议,它只对善意爬虫有效,并不能防止恶意爬虫。. C& U, Z1 G$ s! x
* k+ o. Z# G0 s: n; p9 D% \' S针对恶意爬虫,我们可以采取以下措施来识别和阻断它。& I' Q9 w$ C3 a$ I6 P) i
5 a! u( V# a# V4 b6 Y# E8 G
1.限制User-Agent字段9 J* m& S1 c1 z! ?
3 V, u2 ]' d# k4 W0 a j$ W) ]User-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息。# v6 [0 f1 c, a5 v) N
% t E& |' W4 H+ p; |! K2 S/ x u
User-Agent字段虽然有效,但对于精心构造的爬虫来说,效果并不好。攻击者可以通过在恶意爬虫请求的User-Agent字段中带上baidu字符,伪装成百度爬虫绕过这一规则,无法被拦截。6 d! {* u4 w ~
: _+ [" p* Q" b$ B. f$ x5 ^
2.限制IP& }: N* ?1 Z( C* |, D. B0 D
% C" B% Y) Q/ {) n* f
限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。9 Z7 G: t" N( s0 p
; e" ]+ V( y9 J
不过限制IP也有自己的缺点,容易误伤正常用户,攻击者可以通过搭建IP池的方法,来解决这个问题。
$ P* C& ^ i' c4 Z3 x
, H0 m7 b a- n: S( }9 F# z t3. 添加验证码. k& v! f! t' U, i# p7 o3 ~3 w
8 Q3 S" S, h* e# w% W1 L% q" K在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。
( |/ s; V. G# D: s! l# c
& q( ~% ]3 y' b6 _0 k8 u$ g5 Y" H' t9 ] `8 g/ Y: ]
1 L, T0 G; }/ q* x6 c0 a- I k T原文连接:http://www.szw86.com/thread-9831-1-1.html |
|