您的位置:新闻资讯 >文章内容
应用层反反爬虫的几种常见技术
来源:本站 作者:admin 时间:2019-04-28 15:02:24

一、前端逆向


前端逆向,就是利用前端所有代码、数据都是暴露给客户端的特点,通过分析HTML、JS等源码来获取数据的技术。常用的前端逆向工具就是ChromeDebug工具。前端逆向分析通常用来分析那些动态渲染的网站。如果分析透彻,可以避免使用浏览器模拟的方式来进行爬取。


应用层反反爬虫的几种常见技术


二、浏览器模拟


浏览器模拟指利用真实的浏览器去请求、执行页面和脚本。应用场景是爬取带有复杂JS和接口加密的网站、也被BOT用于复杂网站。常见的浏览器模拟框架有SeleniumWebDriver、PhatomJS。Selenium是通过浏览器的debug接口进行浏览器的远程操控API。PhantomJS是一个嵌入了浏览器内核的js渲染服务,这种技术可以用来对抗动态渲染和接口加密。所有的渲染和加密过程都由浏览器内核完成。高级的做法是用CEF(ChromeEmbeddedFramework)进行二次开发。通过二次开发CEF,可以获得很强的灵活性,比如在页面加载之前劫持JS对象、用C++代码hooknativejsapi等等。这种技术的主要劣势是低下的性能。与纯粹的HTTP请求代码来说,这种方案要多吃50~500倍的CPU。也就是说,它的效率要下降数十倍到数百倍左右。


三、字符识别


光学字符识别(OCR)用于对抗简单的数字、字母验证码。初级的OCR基于模板。高级的字符识别基于神经网络,比如[这个项目],它基于LSTM模型,可以提供更好的识别率。


四、行为模拟


行为模拟是指在爬虫和BOT的过程中,有意的留下Cookie,并请求一些与需要爬取数据无关的接口或者做一些动作,用来模拟一般用户的动作,用于对抗行为分析。在BOT场景下,这种方式也用来模拟用户的活跃度和留存率。一般来说,行为模拟的主要依据来源于前端逆向的工作,破解者需要确定究竟有哪些HTML元素和用户行为事件被网站所关注,并针对性的做出想要模拟的行为。大多数情况下,爬虫的行为模拟是请求某个日志上报接口,而一些比较特殊的网站(比如支付宝),用户行为数据附着在请求普通接口的参数中,并经过高度混淆。


五、打码平台


打码平台用来对抗强度比较高的验证码和人机验证方案。正常的验证码流程是,由网站生成一张图片传递给用户,用户输入这张图片的信息传回网站,完成人机验证。破解者通过对接打码平台,将用户识别信息的环节放到打码平台去做,打码平台组织一群专职人员,进行验证码的识别工作,并传回爬虫,完成验证码的识别工作。高级的打码平台还会利用这些海量的打码数据进行模型训练。


六、JSHook


这种方式主要用来对抗js上下文的跟踪和分析。做法是,在页面加载前,通过替换JS上下文的对象,将JS上下文中的对象和方法替换掉。例如,将window.screen对象替换,使网站的js代码获取到替换后的屏幕分辨率。JSHook一般在CEF二次开发中实现,也可以通过劫持普通浏览器的流量完成jshook。


相关文章内容简介
在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部