潘洪敏
个人介绍:潘洪敏,2015年7月加入去哪儿。目前在大住宿事业部大前端工作,负责爬虫类型分析,反爬虫策略研发,以及反爬虫平台的开发与维护,同时负责反爬虫平台产出的数据分析,以及数据清洗工作。
既然反爬虫是个长期工程,那么将反爬虫系统化、工程化就很重要。 怎么上下策略,怎么匹配规则,怎么更换惩罚等,都需要一个成熟的平台来操作。而不是说每次都重复相同的步骤,做着重复性的工作,劳心费力。
将反爬虫系统化、平台化是在一场持久战中胜利的必要条件。所谓工欲善其事,必先利其器,就是这个道理。
反爬虫平台目标
在做反爬虫平台之前,我们需要明确反爬虫平台需要达成的目标:
·提供可快速上下策略的功能
·提供可以个性化配置的策略选择
·提供可以个性化配置的惩罚规则匹配功能
·提供反爬虫策略池,规则池,惩罚池,以供选择
·提供一个稳定的反爬虫系统
·提供完善的监控
·提供有价值的识别日志
·对数据有保护
·对爬虫有快速响应的能力
反爬虫平台整体系统结构
前面也提到了,反爬虫平台会提供完善的反爬虫识别日志。识别日志至少有两个用途,之一是用识别日志来清洗数据,清洗之后的日志才是可以“说话”的能反应真实情况的真实数据;之二是日志还可以作为机器学习的学习范本或支持库,以供机器学习训练使用,以至于达到机器防抓的目的。
反爬虫平台包括四个组成部分,业务线接入系统、反爬虫系统、管理系统、配置管理系统。业务接入系统负责对接业务线,并提供环境探测功能;反爬虫系统负责整体反爬虫流程控制以及代理转发;管理系统负责所有的管理工作,包括业务线基本信息管理,策略管理,惩罚规则管理,惩罚方案管理等。配置管理系统负责策略、惩罚等的历史版文本维护。
在上篇文章中,我们将反爬虫分为前端反爬虫,中间层反爬虫,后端反爬虫。根据实时性,将反爬虫分为实时反爬虫和非实时反爬虫。反爬虫平台的反爬虫系统属于中间层的实时反爬虫,在客户端与服务器之间设置拦截过滤,有效减少服务器端的压力。
如果将反爬虫平台比作一个反导弹系统,那么配置管理系统管理着反导弹,反爬虫系统相当于反导弹系统的发射系统,负责发射反导弹,管理系统负责安装反导弹,业务接入负责掌控要保护的范围,以为外围环境侦查工作。这些系统相互合作,构成了一个完整的反爬虫平台。
反爬虫平台功能
反爬虫平台服务于需要保护的接口,主要包括以下功能:
1、爬虫识别:这是任何一个反爬虫系统都需要的基本功能。我们将识别爬虫的方法称为反爬虫策略。在反爬虫平台中,维护有策略库,里面有多种反爬虫策略,可以针对性的识别多种爬虫。
2、代理转发:反爬虫平台作用于接口,通过反爬虫策略的接口,需要代理转发到接口的真实服务器。
3、数据保护:对代理返回的数据进行混淆加密,返回给用户的也是经过混淆的数据,爬虫不能直接接触接口数据。
4、快速更新反爬虫策略:这是针对发爬虫的特征定制的功能,反爬虫的策略可能随时被攻破,需要用有效策略及时替换无效策略。这就需要支持反爬虫策略的快速上下线功能。反爬虫平台相当于架起了一个可部分拆卸安装的防护墙,哪一部分的防护功能被攻破,就替换当前防护墙部分。当然也提供了方便拆卸安装的工具,可以快速更新。有效组织“快攻”,实现快速反击,减少策略的失效时间。
5、beta 环境自定义功能,反爬虫平台是数据中间层反爬虫,需要代理的功能。但是业务线的 beta 环境可能有多套,代理目标必须支持自定义,才能满足业务线的代理需求。
6、基本信息在线维护功能。业务线接口的基本信息,有管理系统负责维护。
7、数据清洗,用反爬虫日志清洗业务日志,区分正常用户,善意爬虫与恶意爬虫的数量。
反爬虫平台的特点
反爬虫平台有以下几个特点:
1、业务线低成本接入: 判断一个工具好不好用的标志之一是,易不易用。一个工具再好,但是使用成本太高,也不会有很好的推广性。我们牢记这一简单易用原则,将反爬虫的接入成本降至最低,业务方可以快速方便的接入。
2、反爬虫方案自定义:接入反爬虫,默认会有公有的反爬虫方案,但是也不妨碍用户定义自己的私有反爬方案,也就是说业务线可以定义自己的反爬虫方案。
3、快速上下线策略:这个“快攻”的其中一个体现,提供了支撑策略的支架与快速上下线策略的方法,一旦策略失效,快速替换策略。
4、测试环境自定义:为了不给用户的测试环境增加任何的测试负担,完全支持界面化的测试环境自定义,简单快捷。
写在最后
反爬虫平台目前已经支持 pc 页面以及 h5 页面的接入,未来还会支持客户端页面的以及微信小程序反爬虫。反爬虫平台不仅能反爬虫,也能根据反爬虫的产出对用户数据进行清洗,过滤掉爬虫,返回给业务线一个可靠、真实的用户数据,让真实数据来说话。
兵家有言,先谋而后动,不打无准备之仗。要打好反爬虫的战争,需要建设一个好的反爬虫平台,想要反导弹发射的远准狠,就需要一个好的发射器。Anticraw 是一个结构完整,功能完备的反爬虫平台。支持多业务线接入,业务线再也无需浪费人力写反爬虫策略。对新的爬虫或升级的爬虫能够快速反应,支持策略的快速更新,减少反爬虫策略的失效时间。且多策略同时拦截,有效避免了“一点攻的”弊端 。
领取专属 10元无门槛券
私享最新 技术干货