|
防止网站被爬虫抓取的方法有哪些
3 Z4 p7 {8 U; v2 s
" w6 j0 V3 C. h$ x3 R7 E) m防止网站被爬虫抓取的方法有哪些# E- z- \( z2 P
. D8 Y s4 g& _$ J对于网络爬虫,我们是既爱又恨。一方面爬虫可以带来客观的流量,另一方面又会占用服务器资源。因此在面对爬虫时,进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢?
$ H4 |4 ~+ [0 l4 L4 S
2 i' G' ] H7 d5 S一、分辨爬虫的善恶
U8 f5 t& ^8 G* k K$ t
j, w4 \* w& {) d8 P网络爬虫分为两种,一种是善意爬虫,例如百度、Google等搜索引擎的爬虫,另一种是恶意爬虫,它可能会利用网站漏洞,非法窃取网站数据,或者爬取网站内容,占用服务器资源。恶意爬虫的行为是我们所深恶痛觉的,必须想尽办法予以过滤和阻断。网站或者某一些网页不想被诸如百度、Googl等善意爬虫爬取时,我们也希望能采取一些措施。
$ \4 |. _" Q5 @9 `6 W1 [- B4 h- ]7 {; B% n d3 R
二、如何防止网站被爬虫?$ i, u9 ^% S7 g9 f. x0 C0 {& M; Q
. P) ~# X4 N* F# m9 n1 a/ {
针对善意爬虫,几乎所有的搜索引擎爬虫,都会遵守robots协议,只要我们在网站的根目录下存放一个ASCII编码的文本文件,告诉搜索引擎哪些页面不能爬取,搜索引擎的蜘蛛便会遵照协议,不爬取指定页面的内容。; Y A/ O9 E7 |+ f8 ?% _
4 A% o9 d" C; ]1 h/ M但是robots并不是一个规范,而是一种君子协议,它只对善意爬虫有效,并不能防止恶意爬虫。6 R/ b5 e4 E4 u0 D% Q4 @
8 s. f, y+ u& [/ t针对恶意爬虫,我们可以采取以下措施来识别和阻断它。
& ~/ @1 W* d$ w9 \/ a1 h( U
4 c o l. m( W+ p4 y3 w7 y1.限制User-Agent字段' W; c5 `: x( N8 F+ S1 z; j) @
9 a0 }; j2 V) X6 Y) Y# ~; E9 RUser-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息。
E9 m7 J, L: I
' f/ I) b5 o# o' DUser-Agent字段虽然有效,但对于精心构造的爬虫来说,效果并不好。攻击者可以通过在恶意爬虫请求的User-Agent字段中带上baidu字符,伪装成百度爬虫绕过这一规则,无法被拦截。6 C- _6 e& U* A' @* r& C) [# u% D4 Y
7 D+ |0 N5 ]: v R
2.限制IP- G( d6 }4 U- H/ ?4 g3 I+ I# c& N: C
: c$ \' q2 f4 k8 `限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。- `( r( K! _. R8 Y
7 p7 G9 s3 K9 z# h
不过限制IP也有自己的缺点,容易误伤正常用户,攻击者可以通过搭建IP池的方法,来解决这个问题。 J$ q0 a5 J' V' F7 K! R
0 h9 ]* `4 F* ^2 K! ~ v& A9 v/ M+ I
3. 添加验证码( ^3 _ N- u9 S& ]) @: q, C* p
1 s' k" `. C4 C7 E" k, ^. p在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。7 N% d5 s- p2 A: {- ^: p
) }# M% L9 G [
% m2 e8 N% \& v. ?! k" G) Z- J" A0 d5 I
原文连接:http://www.szw86.com/thread-9831-1-1.html |
|