|
防止网站被爬虫抓取的方法有哪些
; N5 E' y5 A. g) Q/ P8 Z! W6 V% G+ b t" V1 ^
防止网站被爬虫抓取的方法有哪些
7 |$ U4 @: ], i; {; P; R) K6 B7 o5 t/ g. o& s! p1 @, f
对于网络爬虫,我们是既爱又恨。一方面爬虫可以带来客观的流量,另一方面又会占用服务器资源。因此在面对爬虫时,进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢?
: v: s7 b4 O C! u2 v2 A; b' v \6 L1 k" O8 F/ [9 j; G
一、分辨爬虫的善恶
! l# K: F" H" @) h, G+ W, e
' g- k, I* ?4 Z7 N/ L8 B) M/ f网络爬虫分为两种,一种是善意爬虫,例如百度、Google等搜索引擎的爬虫,另一种是恶意爬虫,它可能会利用网站漏洞,非法窃取网站数据,或者爬取网站内容,占用服务器资源。恶意爬虫的行为是我们所深恶痛觉的,必须想尽办法予以过滤和阻断。网站或者某一些网页不想被诸如百度、Googl等善意爬虫爬取时,我们也希望能采取一些措施。
' J6 q, G" ?8 V, F: p# g1 o- ~' ]
二、如何防止网站被爬虫?
- K" P% W, P7 N) {5 q& m" D2 u$ l/ a# J
针对善意爬虫,几乎所有的搜索引擎爬虫,都会遵守robots协议,只要我们在网站的根目录下存放一个ASCII编码的文本文件,告诉搜索引擎哪些页面不能爬取,搜索引擎的蜘蛛便会遵照协议,不爬取指定页面的内容。$ T( U& u7 |+ q7 L
7 w! F1 y# I- {2 f. y但是robots并不是一个规范,而是一种君子协议,它只对善意爬虫有效,并不能防止恶意爬虫。, A* w' l1 v! T5 j3 I5 e @
3 C. f7 t3 x" H针对恶意爬虫,我们可以采取以下措施来识别和阻断它。. y1 l9 J% E* g5 \9 J* p, ^ W/ C1 _
/ |. M* @% g+ N7 t" F. Y: s; L! P! I1 Y
1.限制User-Agent字段5 g& T6 }) V4 }" }6 ?! u# ~9 u; I
$ m& w9 K3 K6 p# M& y; `( n, AUser-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息。
/ H& T; \7 e3 H; [7 a/ _+ c. h; q9 @; K# A
User-Agent字段虽然有效,但对于精心构造的爬虫来说,效果并不好。攻击者可以通过在恶意爬虫请求的User-Agent字段中带上baidu字符,伪装成百度爬虫绕过这一规则,无法被拦截。
7 w$ }0 a8 b% u3 D7 \! p/ i# ]' X8 l
2.限制IP
3 _2 M2 [5 u7 M9 T3 r g* G2 h' C) f6 a W% n! u ^+ b: E, W% |
限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。
- [0 _( O. S# F- H* x) @
7 U- X/ l- V9 b4 S- i3 ~; N" ?不过限制IP也有自己的缺点,容易误伤正常用户,攻击者可以通过搭建IP池的方法,来解决这个问题。
: s3 M3 q" A! k( A, _
7 j' ?) z2 R$ p, _0 G3. 添加验证码+ J; X# W: T& `, c: B
! y- e) x! H% k# u3 @# @在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。3 Y& U0 m' R! }1 C( m
5 g8 W& r0 k5 A2 W; {: e& Y" n% d9 ~0 C$ n9 F, W2 r
1 [& n. F Q3 [- p* Y2 Q
原文连接:http://www.szw86.com/thread-9831-1-1.html |
|