|
防止网站被爬虫抓取的方法有哪些5 t/ ?- E/ [* g9 E9 p, w
; f/ s# g0 _: M4 S$ j, x# \
防止网站被爬虫抓取的方法有哪些
5 `1 J6 i2 {; r& a( Q
) V9 O) ?" t; X对于网络爬虫,我们是既爱又恨。一方面爬虫可以带来客观的流量,另一方面又会占用服务器资源。因此在面对爬虫时,进行爬虫管理很有必要。那么我们该如何防止网站被爬虫呢?* d. G/ ^# A+ s5 H3 {" l9 P' C0 y9 g
* X- c: |) R* x& s
一、分辨爬虫的善恶
/ i8 R' F) E6 {7 ]2 q0 C/ ~+ |* `' d1 q1 W6 r
网络爬虫分为两种,一种是善意爬虫,例如百度、Google等搜索引擎的爬虫,另一种是恶意爬虫,它可能会利用网站漏洞,非法窃取网站数据,或者爬取网站内容,占用服务器资源。恶意爬虫的行为是我们所深恶痛觉的,必须想尽办法予以过滤和阻断。网站或者某一些网页不想被诸如百度、Googl等善意爬虫爬取时,我们也希望能采取一些措施。2 W) J3 G2 P+ D8 Q
" L, z1 W% }9 q) ?; L二、如何防止网站被爬虫?
+ P& S* i) K7 x$ U# g& [
6 i: W }! q# [4 P$ }7 F# I针对善意爬虫,几乎所有的搜索引擎爬虫,都会遵守robots协议,只要我们在网站的根目录下存放一个ASCII编码的文本文件,告诉搜索引擎哪些页面不能爬取,搜索引擎的蜘蛛便会遵照协议,不爬取指定页面的内容。
I5 w$ s$ M, E7 Z% a. O1 ?: ~- z: y$ F$ o
但是robots并不是一个规范,而是一种君子协议,它只对善意爬虫有效,并不能防止恶意爬虫。
: J4 v0 c# `6 S# n( s) P+ z3 g3 r9 M+ a( T
针对恶意爬虫,我们可以采取以下措施来识别和阻断它。- f+ K, L) j C( \: c
! k- `+ h* L4 _; X
1.限制User-Agent字段
" y5 r' e6 U) K1 p m
# [3 G6 c: }2 I8 WUser-Agent字段能识别用户所使用的操作系统、版本、CPU、浏览器等信息,如果请求来自非浏览器,就能识别其为爬虫,阻止爬虫抓取网站信息。9 v5 ^" w1 |9 {
/ ^: ]5 \, v/ y/ d; QUser-Agent字段虽然有效,但对于精心构造的爬虫来说,效果并不好。攻击者可以通过在恶意爬虫请求的User-Agent字段中带上baidu字符,伪装成百度爬虫绕过这一规则,无法被拦截。
* i4 E+ b' g" l7 x3 S J9 [6 G7 D' B$ y. z- n
2.限制IP+ s7 E! {, L7 e; ~1 O) q
" z6 W B& N* O
限制IP是最常见的手段之一,为了效率,恶意爬虫的请求频率往往比正常流量高,找出这些IP并限制其访问,可以有效降低恶意爬虫造成的危害。( ^/ I d" k l6 }, q
: W+ ?, y2 B* }% {2 w% S不过限制IP也有自己的缺点,容易误伤正常用户,攻击者可以通过搭建IP池的方法,来解决这个问题。
^( o% B8 l1 p8 |
1 ?3 y" R% E3 U& O3. 添加验证码 t0 x6 a2 p' `
9 U0 e' j1 _9 Y
在登录页等页面,添加验证码,以识别是正常流量还是恶意爬虫,也是一种基本的操作。不过如今爬虫技术,早已能解决验证码的问题,例如二值化、中值滤波去噪等等。
0 k5 n/ X* m3 I' [; h c7 O' ?" }9 E) h2 m0 V
% Q' ]0 T$ m. u( ~) z3 m
4 v. \9 d _2 x- q0 i% @原文连接:http://www.szw86.com/thread-9831-1-1.html |
|