关于反爬虫策略

1、为何要反爬虫

一、爬虫占总PV比例较高,这样浪费钱(尤为是三月份爬虫)。html

三月份爬虫是个什么概念呢?每一年的三月份咱们会迎接一次爬虫高峰期。前端

最初咱们百思不得其解。直到有一次,四月份的时候,咱们删除了一个url,而后有个爬虫不断的爬取url,致使大量报错,测试开始找咱们麻烦。咱们只好特地为这个爬虫发布了一次站点,把删除的url又恢复回去了。面试

可是当时咱们的一个组员表示很不服,说,咱们不能干掉爬虫,也就罢了,还要专门为它发布,这实在是太没面子了。因而出了个主意,说:url能够上,可是,绝对不给真实数据。安全

因而咱们就把一个静态文件发布上去了。报错中止了,爬虫没有中止,也就是说对方并不知道东西都是假的。这个事情给了咱们一个很大的启示,也直接成了咱们反爬虫技术的核心:变动。测试

后来有个学生来申请实习。咱们看了简历发现她爬过携程。后来面试的时候确认了下,果真她就是四月份害咱们发布的那个家伙。不过由于是个妹子,技术也不错,后来就被咱们招安了。如今已经快正式入职了。网站

后来咱们一块儿讨论的时候,她提到了,有大量的硕士在写论文的时候会选择爬取OTA数据,并进行舆情分析。由于五月份交论文,因此嘛,你们都是读过书的,大家懂的,前期各类DotA,LOL,到了三月份了,来不及了,赶忙抓数据,四月份分析一下,五月份交论文。加密

就是这么个节奏。url

二、公司可免费查询的资源被批量抓走,丧失竞争力,这样少赚钱。htm

OTA的价格能够在非登陆状态下直接被查询,这个是底线。若是强制登录,那么能够经过封杀帐号的方式让对方付出代价,这也是不少网站的作法。可是咱们不能强制对方登陆。那么若是没有反爬虫,对方就能够批量复制咱们的信息,咱们的竞争力就会大大减小。接口

竞争对手能够抓到咱们的价格,时间长了用户就会知道,只须要去竞争对手那里就能够了,不必来携程。这对咱们是不利的。

三、爬虫是否涉嫌违法? 若是是的话,是否能够起诉要求赔偿?这样能够赚钱。

这个问题我特地咨询了法务,最后发现这在国内仍是个擦边球,就是有可能能够起诉成功,也可能彻底无效。因此仍是须要用技术手段来作最后的保障。

2、反爬虫

一、网站不一样地方的文本内容添加不一样的自带标签,增长对方数据清理难度。

二、关键数据由文本转图片,甚至添加水印等。目前市场上图片ocr识别没法有效转文字,让对方即便获取了图片也没法有效使用。

三、网站相关页面的列表查询,限制总页数的展现。好比数据一共1K页,相关接口却只对外展现前十页。对方找不到入口最多爬取10页数据。

四、间接关闭网站核心数据查看入口,好比内容的查看像百度文库同样改成word、pdf或者ppt下载模式,高频下载须要验证码或者帐号积分。

五、网站不提供注册入口,或者注册须要内部推荐或者评审,加大爬虫方获取帐号的难度。

六、网站的请求url复杂化,好比弄的像淘宝同样没有规律,id改成UUID等。

七、前端页面尽量不暴露数据的惟一键,对惟一键如主键id等进行假装,能够增长对方爬取后的去重成本。由于对方爬数据多是在你的多个模块页面进行多维度爬取,会有大量的重复数据。

八、前端html页面别一次性加载列表,根据用户点击js动态加载。即查询页面源码时,只能看到列表的第一条数据。

九、当肯定访问异常时,大量返回虚假数据。爬虫几乎没有判断数据真假的能力,只有人才有。对方发现的越晚,咱们的处理应对时间就越充裕。

十、核心数据提升安全等级,单独加密等。