|
防止网站被爬虫抓取的方法有哪些
+ b- S. I0 h) H) S" Z7 K' T3 v6 O Q& r$ i9 V
防止网站被爬虫抓取的方法有哪些* Z) h, l1 J; R5 k; R8 I
; D" K9 E8 \2 j+ K7 H! b7 Q6 R对于网络爬虫,我们是既爱又恨。一方面爬虫可以带来客观的流量,另一方面又会占用服务器资源。因此在面对爬虫时,进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢?
3 E& K* V2 s8 {. {+ i
: x" }) S% l b一、分辨爬虫的善恶
( n4 V* }# o; g
4 m' X$ a" W( F* r9 d: f, M网络爬虫分为两种,一种是善意爬虫,例如百度、Google等搜索引擎的爬虫,另一种是恶意爬虫,它可能会利用网站漏洞,非法窃取网站数据,或者爬取网站内容,占用服务器资源。恶意爬虫的行为是我们所深恶痛觉的,必须想尽办法予以过滤和阻断。网站或者某一些网页不想被诸如百度、Googl等善意爬虫爬取时,我们也希望能采取一些措施。$ [, l D! a9 u
2 u5 q8 l1 t* t( N2 L$ b/ [
二、如何防止网站被爬虫?4 h( F) a, z: v9 q8 ]) r7 h# }
( k5 f& Q* h) B, X- p7 S
针对善意爬虫,几乎所有的搜索引擎爬虫,都会遵守robots协议,只要我们在网站的根目录下存放一个ASCII编码的文本文件,告诉搜索引擎哪些页面不能爬取,搜索引擎的蜘蛛便会遵照协议,不爬取指定页面的内容。
O5 @* z! D$ \6 d, t8 j6 G2 g! D) _* }
但是robots并不是一个规范,而是一种君子协议,它只对善意爬虫有效,并不能防止恶意爬虫。
" `& b) }/ e1 S, Q& j# A& B% J! U1 @
- p/ { w5 @" c4 `3 t, U& n针对恶意爬虫,我们可以采取以下措施来识别和阻断它。
2 K* R7 m1 f: J( I
$ l$ j# F( J3 P6 w1.限制User-Agent字段
* J3 x5 o' h' y/ m# z
2 c) O# x& s/ x Y N LUser-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息。, v0 @* t w9 k" ?1 U/ U& ]! n ~
. w) f" l/ O' z- P- e/ AUser-Agent字段虽然有效,但对于精心构造的爬虫来说,效果并不好。攻击者可以通过在恶意爬虫请求的User-Agent字段中带上baidu字符,伪装成百度爬虫绕过这一规则,无法被拦截。# o/ X r: p( c+ v
{8 y8 o' n: e# w
2.限制IP
5 o9 a. D D. r6 X- c; D9 p4 k
" }( w9 _/ o3 u6 U% P/ t限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。6 x1 B9 G' F4 ] ]9 z8 g
! U' ?3 w9 e7 J
不过限制IP也有自己的缺点,容易误伤正常用户,攻击者可以通过搭建IP池的方法,来解决这个问题。
4 @0 w5 s6 y+ Z' V+ V: W# r. a# \2 S1 [3 l8 `6 K% ~( j7 y7 d
3. 添加验证码
) v& Z5 P B1 M- i& k$ ]* O) z
在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。
7 M7 D$ m& t& Y5 W+ C7 `
% M) P9 O/ g7 Y" \; d5 ~9 q) }! \; O0 A/ H* f M; `" ^' o
) v, y+ l- I( ]( s$ ]# S, `7 b6 J
原文连接:http://www.szw86.com/thread-9831-1-1.html |
|