P8-自动化的检测与反检测-DrissionPage自动化数据采集
前面的视频可能会让大家误以为用自动化就可以高枕无忧了,就可以用自动化打遍天下无敌手了,其实不然,自动化并非完全之策。
这一集给小伙伴们浇盆凉水,大致探讨下检测和应对检测的办法。
检测手段其实有很多,但并不是一种方法就可以通杀所有的的场景,业务和需求,一般都是要因地制宜的。当然我们这集说的都是自动化相关的,所以逆向协议然后使用代理IP那些就不在讨论范围之内了。
所以自动化的检测与反检测手段有哪些呢?
第一点是限流:在后端接口规定一个账号在多长时间内可以请求几次,那么你速率太快就会得到错误响应或者拒绝请求。或者查水表等。
当然有些网站是不需要登录就可以获取数据的,那么替代账号作为区别字段的就可以是请求的ip,浏览器指纹等信息。浏览器指纹其实是一个电脑中安装的浏览器里可以获取的各种信息,可以理解为电脑里的浏览器的指纹。
第二点是行为分析
但是对于小批量的数据,比如几十页几百页数据,限流仿佛大炮打蚊子,根本排不上用场,这个时候就可以使用一些行为分析的方式。比如说你的鼠标轨迹,比如说你的数据就一动没动,但是浏览器却在自动的操作着请求数据,比如说你鼠标的位置不在按钮上,但是按钮被点击了,这些操作肯定就是不合理的,所以就可以做出一些反应。其实有些网站你可以你鼠标动一下就发了一堆网络请求,非常的可怕。
如何应对上面所说的限流与行为分析呢?
其实也很简单,他检测什么,你就伪装什么?他用来限流的标识符是什么,你就尽可能多使用不同的标识符,比如说他限制账号,那么你就多用一些账号,他限制浏览器指纹你就使用指纹浏览器或者研究下如何伪装指纹。
然后我最近突发奇想了一个办法,就是应对浏览器指纹的,我感觉很有搞头,就是分布式的原理。之前就有一些概念很像,就是挖矿和撸空投这种东西。就是利用大量用户的电脑进行任务细分完成。哪里有这种大批的电脑也可以安装这种类似软件进行自动化采集数据,这种我觉得就是更难防备,因为确实每个请求的机器都是真实的用户和浏览器指纹。这样的话如果你有一百台电脑分别有一个ip,那么就算你每台电脑一秒访问一次,就相当于你有了一百的并发。
然后就是行为分析,比如鼠标轨迹检测。我们可以用控制桌面鼠标的工具比如说pyautogui然后再搭配上轨迹生成算法就可以实现模拟人的操作。当然这依赖于轨迹生成算法的真实性和网站检测的能力。当然我们还有下下策,就是便宜的牛马大学生好吧,我们顾几十个老大爷拿着鼠标拖拖拽拽可以让一切的行为监测形同虚设。哈哈,当然后面还是开玩笑的,大家别当真。
后面我们的爬虫反爬与反反爬会针对浏览器指纹和鼠标轨迹检测再出两集,感兴趣的小伙伴可以关注下。