大数据采集之反爬虫探索
沉沙 2019-02-20 来源 : 阅读 987 评论 0

摘要:本篇文章探讨了大数据采集之反爬虫探索,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章探讨了大数据采集之反爬虫探索,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

大数据采集之反爬虫探索


反爬虫定义

首先来了解一下什么是反爬虫:通过一些独有特征识别爬虫的技术就称为反爬虫。网上的一些反爬虫文章经常提到的验证码验证、强制登陆、数据加密等反爬虫方案,在我看来属于“马后炮”,已经是反爬虫之后要做的事情。根据反爬虫的定义,反爬虫的重点在于“识别”,正确区分爬虫与正常用户是反爬虫首先要做的事情。

反爬虫的技术随着爬虫技术的进化,也在不断的进化。初级的爬虫,我们可以根据 ua,或者 ip 频率来识别,但是稍微高级的爬虫都会做基本的伪装,且伪装成本较低。

反爬虫现状

我们很少能看到反爬虫策略相关的文章,除了一些非常简单的识别策略。这并不是说其他公司没有反爬虫,而是因为现阶段并没有制约爬虫的一劳永逸的方案,爬虫和反爬虫还是处于不断博弈的过程。公司为了延长反爬虫策略的失效时间,对反爬虫策略有保护机制。所以,反爬虫技术是不共享的。我们也有自己的反爬虫方案,并且也在保护自己的反爬虫策略。

严格上来说,反爬虫是通过技术手段来识别爬虫,但是我们会将数据保护也看做为反爬虫的一部分。所以我们将反爬虫分为爬虫识别与数据保护两个过程。爬虫识别是反爬虫的主要阶段,也是最难的部分,数据保护是对返回给客户端的数据进行的一些保护方法,避免将核心数据直接暴露在爬虫面前。

反爬虫分类

根据不同的分类标准,可以将反爬虫分为不同的类型。根据反爬位置不同,可以将反爬虫分为客户端反爬、中间层反爬、服务端反爬。根据反爬虫的实时性又可以分为实时反爬虫与非实时反爬虫。

客户端反爬虫是在前端脚本上做爬虫特征识别,但是因为爬虫会直接跳过前端脚本,直接访问接口,单纯的前端反爬虫是不太实用的。

中间层反爬虫是指,在客户端与服务器端中间增加拦截与转发,做爬虫识别之后,将正常用户放行,将爬虫拦截。相当于一个“过滤器”,能很大程度的减轻服务器的压力。并且可以服务于多业务,多服务。

服务器端反爬虫,是在服务器端做爬虫识别,只对真实用户做出反应。但是这样的反爬虫方案,不会减轻服务器的压力,并且不同的业务线都要单独反爬虫,浪费人力。

实时反爬虫,是在爬虫访问的同时进行爬虫识别,对当前爬虫进行拦截。非实时反爬虫是指,对疑似爬虫进行分析,分析之后再对相同特征的爬虫进行拦截。

我理解的反爬虫

以往提到反爬虫,大家关注的焦点一直是反爬策略。判断一个反爬策略好坏的标准也是爬虫识别率和误伤率,进而会在研发爬虫策略上花费很长的时间。殊不知,爬虫和反爬虫本身就是一场你攻我防,你防我破防的长久战。而策略的有效时间也是“反反爬虫”破解反爬虫策略的时间,一旦爬虫升级,刚花费力气研究出来的反爬虫策略也就变成失效策略。

我们必须承认,在现阶段,还没有一个一劳永逸,能永久防住爬虫的反爬虫策略。也即是说,策略有“有效期”,有效期的长短因爬取方的技术差异而异。

经常看排球的人应该常听到这样几个词:“强攻”、“快攻”、“一点攻”、“多点开花”。像中国、日本这样的亚洲国家运动员,相较于欧美国家的运动员,在身高与力量上都有较大差距,“强攻”往往没有效果,所以就会经常性地组织“快攻”,打对方个措手不起,反而能得分。若只有主攻的一点攻,一旦主攻被重点关注之后,将非常被动,想赢就必须“多点开花”,也就是必须有多个得分点。

仔细想想,对付爬虫,也需要如此。

如果我们将有效策略成为强攻,如果对手没有拦截的能力,能拿到有效得分。但是一旦强攻手被重点关注,被对方有效拦住(破解)之后,强攻点就会无效,也就是说“强攻”只能有一时的效果,失效只是时间问题。除非我们有反爬虫界的“朱婷”,拥有绝对实力的“超手”,但即使是朱婷,得分率也不可能是 100% 啊。那在“强攻”失效的时间里,有效的组织“快攻”就是我们要考虑的问题。除了防,我们还要主动出击,给对方制造陷阱,俗称“假动作”。总而言之,一个强队,是不可以有弱项的,发球,进攻,防守,拦网,哪个环节都不能弱,弱就是漏洞,就会给对方制造得分机会。

其实不论是“强攻”还是“快攻”,最主要的还是将反爬虫的过程系统化。反导弹系统不能靠手扔反导弹,我们都不是路飞他爷爷(海贼王里面的人物,可以徒手扔炸弹,威力比炮台还厉害)。必须有一个系统化的工具作为支撑,才不会每次被爬虫攻击的时候都如临大敌。如果我们将爬虫看做敌人进攻,那么岗哨(发现被爬虫攻击)要及时报警并报告警情、敌方特征。后方部队根据敌方特征排兵布阵,出击拦截。在系统化的过程中,我们必须清楚,我们面临的不是来自同一个对手的爬虫,反爬虫想保护的也不是单一的业务线,所以灵活是不可忽略的特性。

这看起来可能有点“不务正业”,因为毕竟反爬虫的核心是研究反爬虫策略,但就像前面内容所讲的,没有一个好的平台支撑,策略很难在最快的时间内生效。所以我们一手抓策略,一手抓平台,两手都要抓,两手都要硬。一个好的反爬虫平台可以解放很多的人力物力资源,各种反爬虫策略都可以维护在平台中,实现了资源共享。

所以,反爬虫是个长期过程,重点在于系统化,而不是游击战。就像上篇中提到的网站防欺诈服务商 distil network,就是一家专本致力于网站防欺诈(反爬虫)的企业,是一个系统的专业反爬虫平台。他们的反爬虫策略和平台管理属于商业机密,我们无从知晓,但是作为有敏感数据的一个在线旅游服务公司,我们需要有自己的反爬虫策略与反爬虫平台。

       

   

本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程