众所周知,现在爬虫库种类越来越多了,小白型(不说,怕违反规定)和大佬型(如Python的BS4,以及Selenium等),技术也是越来越先进,从当初模拟HTTP请求到现在直接整个浏览器出来.可是反爬技术好像还停留在N年前,基本上就是些UA检测,特征检测(针对Selenium),以及参数加密(这对于Selenium更本不是事,直接Copy走人),更先进的便是追踪鼠标,我这里想到一些特别皮(皮成仙)的反爬手段,和大家分享一下(由于内部使用,只分享部分反爬)
一.Popup反爬
各位看了标题,可能会疑惑:Popup(HTML弹框)也能玩反爬?没错,而且在此下反爬的我估计全网没几个人.那么通过什么方式来对爬虫进行拦截呢?各位应该都知道,客户来我们这是看内容不是看弹层的,用户在被弹窗遮挡内容后,会自然而然关闭掉弹框/对弹框做出反应,而爬虫并不会.爬虫只会爬取页面然后关掉网页继续下一个页面.你可能会说:不!Selenium不就可以实现自动点击吗?没错!但是,你恰恰中了我的圈套这才是这个方法的精华所在他并不是100%显示弹窗,而是有概率弹出一个,如果没显示弹框却发送Ajax请求/点击元素,那么等于自投罗网,那你又会说,Selenium不是可以自动判断某个元素是否显示和隐藏么?然而,理想很丰满,现实___.对这个元素的隐藏我并不使用display:none,而是采用将透明度设置为1%或更低并使用CSS的事件穿透达到隐藏的效果
二.通过rDNS+UserAgent对搜索引擎放白
尽管是反爬虫,遇到搜索引擎爬虫也不得不给他悠着点,具体就是通过rDNS+高速缓存,判断是否为搜索引擎,如果不是还拿着搜索引擎的UA不怀好意来的话,对不起,See you lala!
三.CacheSlime
Minecraft里面有种生物叫Slime(史莱姆),打死会掉粘液球,这也就是CacheSlime名字的来由,某些入门采集器自带自动清除COOKIE功能,每隔多少分钟自动清除COOKIE,不过,这也变成了我突破口之一,通过对浏览器缓存写入数据(通过Etag辨别用户,没谁了)
好了暂时只说这么多,新人报到,再来个作者介绍,本人高中生一枚,技术一般般,喜欢PHP,勉勉强强应该算个Web全栈,就是CSS写的不咋滴,用现成UI库还行,自己写UI就算了(本人羊驼审美),如有错误/不符合规则的地方请各位大佬指正
溜了溜了 |