常见的六种反爬技术应用
jj
2021-12-09
方法一、前端逆向
前端以暴露为特征,暴露项目是将前端的所有代码和数据交给客户,通过分析html、js等源代码获取数据的技术行动。Chrome Debug是一个常见的前端反向工具。动态呈现的网站通常通过前端逆向分析进行分析。在彻底分析的情况下,模仿浏览器可以避免尝试爬行。
浏览器模拟是指使用真实的浏览器来请求和执行页面和脚本。应用场景是用复杂的JS和接口加密爬取网站,被BOT用于复杂性网站。常见的浏览器模拟框架包括Selenium WebDriver和PhatomJS。Selenium是通过浏览器的调试界面对浏览器进行远程操作控制API。Phantomjs是嵌入浏览器内核的js渲染服务,可以用来对抗动态渲染和接口加密的所有呈现和加密过程都是由浏览器内核完成的。高级方法是使用CEF(Chrome嵌入式框架)进行二次开发。通过CEF的二次开发,我们可以获得强大的灵活性,比如页面加载前劫持JS对象,使用C++代码挂接原生js api等等。这项技术的主要缺点是性能低。纯粹的在HTTP请求代码方面,这个方案需要50~500倍的CPU。也就是说,它的效率会下降几十到几百倍。
三、字符识别
光学字符识别(OCR)用于对抗简单的数字和字母验证码。初级光学字符识别基于模板。基于神经网络的高级字符识别,例如[这基于LSTM模型的项目]可以提供更好的识别率。
四、行为模拟
行为模拟是指在爬虫和BOT的过程中,故意留下Cookie,要求模拟一些与需要抓取的数据无关的接口或者一些动作。模拟一般用户的动作,用于分析对抗行为。在BOT场景中,这种方法也用于模拟用户的活动和保率。一般来说,行为模拟大师根据来自前端的逆向工作,破解者需要确定网站关注哪些HTML元素和用户行为事件,并进行针对性的模拟行为。大多数情况下,爬虫的行为模拟是请求一个日志报告界面,而对于一些特殊的网站(如支付宝),则附加了用户行为数据公共接口的参数被请求,并且非常混乱。
编码平台用于对抗高强度的验证码和人机验证方案。正常的验证码过程是网站生成一张图片传递给用户,用户输入这个图片的信息发回网站完成人机验证。破解者通过对接编码平台将用户身份信息的链接放入编码平台,编码平台组织一个组专职人员,对验证码进行识别,并带回爬虫,完成验证码的识别。先进的编码平台也会利用这些海量的编码数据进行建模培训类型。
六、JS HOOK
该方法主要用于对抗js上下文的跟踪和分析。为此,在加载页面之前,通过替换JS上下文中的对象,JS上下文中的对象和参与方将被更改方法进行替换。比如替换window.screen对象,这样网站的js代码就可以获得替换后的屏幕分辨率。JS Hook一般在CEF二次开发中实现。现在,js hook也可以通过劫持普通浏览器的流量来完成。
上一篇:如何更改代理服务器的IP地址?
下一篇:ip地址对网站搜索引擎优化有影响