|
防止网站被爬虫抓取的方法有哪些
% u2 }: o: E. Q7 R! c& v: r- x' X4 p1 O1 @4 b0 q
防止网站被爬虫抓取的方法有哪些8 ^, d4 g2 l3 w* l" a, ]2 v- I
# b7 C4 U& a7 F B. D3 @
对于网络爬虫,我们是既爱又恨。一方面爬虫可以带来客观的流量,另一方面又会占用服务器资源。因此在面对爬虫时,进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢?0 h- g3 l2 D2 K4 g- D7 P
* Y5 V/ ?0 u9 }+ h
一、分辨爬虫的善恶
# g8 W- g" h! T" n
; g4 K6 _1 p! f; e7 @' T7 w# s% @网络爬虫分为两种,一种是善意爬虫,例如百度、Google等搜索引擎的爬虫,另一种是恶意爬虫,它可能会利用网站漏洞,非法窃取网站数据,或者爬取网站内容,占用服务器资源。恶意爬虫的行为是我们所深恶痛觉的,必须想尽办法予以过滤和阻断。网站或者某一些网页不想被诸如百度、Googl等善意爬虫爬取时,我们也希望能采取一些措施。- p8 @& C \/ L8 g0 }8 z! s% R
6 m" C- ]- f7 \! S- _5 B* V二、如何防止网站被爬虫?
2 G" r% P" z0 J0 @9 ^0 I5 s4 K6 \! f4 L3 ~( Y% d8 G
针对善意爬虫,几乎所有的搜索引擎爬虫,都会遵守robots协议,只要我们在网站的根目录下存放一个ASCII编码的文本文件,告诉搜索引擎哪些页面不能爬取,搜索引擎的蜘蛛便会遵照协议,不爬取指定页面的内容。
0 y- i& _% d, i _( S8 a3 c# r; r0 s# ~* ~$ ^: R
但是robots并不是一个规范,而是一种君子协议,它只对善意爬虫有效,并不能防止恶意爬虫。9 F# s" ^: ~5 Q
/ b+ S8 o. j' G* }5 X4 X# |
针对恶意爬虫,我们可以采取以下措施来识别和阻断它。
( S, ^' U; E9 |/ p* H7 H9 r; ~* J2 k+ j" W( \) B7 j5 e, |
1.限制User-Agent字段
$ v' o5 [+ K. ~! }: x* T& N
& }6 a" Z L& q0 ^$ MUser-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息。
. l- u0 \# |/ f% h9 s% t2 T+ j; K3 y9 e7 s. M5 V5 B" b; b
User-Agent字段虽然有效,但对于精心构造的爬虫来说,效果并不好。攻击者可以通过在恶意爬虫请求的User-Agent字段中带上baidu字符,伪装成百度爬虫绕过这一规则,无法被拦截。- @8 |+ P& V0 g3 z) P3 H
8 e, ]: O |5 q \, K0 V0 o$ X
2.限制IP; d- K3 a' P! s: H+ W' a- I* Z) {
, l5 F/ E% b" U) T7 a- C
限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。2 K" g/ F- W3 }& o8 I3 X2 A) M0 y
+ T# U) y( t& ~
不过限制IP也有自己的缺点,容易误伤正常用户,攻击者可以通过搭建IP池的方法,来解决这个问题。
4 M! C4 b% j" }& ~! g9 G
0 m) S9 m @7 x3. 添加验证码
4 C* T3 z n5 \* [1 i6 A" {; L2 D% L v8 \1 W
在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。
9 f9 V3 A/ O" ^7 W
/ g( Y5 C: Y, m3 d/ h3 A0 U0 `$ j4 _: y( ]# E- E- z" F
& I' M& K0 D e1 R0 o/ ~6 ~. c
原文连接:http://www.szw86.com/thread-9831-1-1.html |
|