Python爬虫进阶必备 | 关于某解析站的无限Debugger的分析

点击上方“咸鱼学Python”,选择“加为星标

第一时间关注Python技术干货!

建议收藏 | 最全的 JS 逆向入门教程合集

目标网站

aHR0cDovL3FxZTIuY29tL1ZpZGVvL2RlZmF1bHQuaHRtbA==

今天要分析的是一个视频解析网站,这一类网站大多都是借用别人写好的视频解析接口,再套上自己的 UI 就是一个新的解析站了,所以有时候解析服务一挂,很多类似的网站都用不了,而且这类解析的网站一般都有法律风险,不建议私自搭建(律师函警告

我们今天主要是分析这个网站的反爬措施,看下有没有值得学习的地方。

网站反爬分析

打开控制台会遇到第一个反爬。

可以看到这里是一个无限的 debugger 循环。【图1-1】

Python爬虫进阶必备 | 关于某解析站的无限Debugger的分析_第1张图片 图1-1

对应着右侧的堆栈【图1-2】

Python爬虫进阶必备 | 关于某解析站的无限Debugger的分析_第2张图片 图1-2

可以看到这个 vm 的代码是由这里的xxxx.js:3973中的代码执行出来的,所以来看看这行代码都做了哪些事情。【图1-3】

图1-3

这里用到的是浏览器的console面板,通过逐一将代码粘贴到console中执行,可以看到这里构造了一个debugger字符串。【图1-4】

Python爬虫进阶必备 | 关于某解析站的无限Debugger的分析_第3张图片 图1-4

那么这个debugger字符串又是怎么被执行的呢?我们把关注点放到construtor上。

Python爬虫进阶必备 | 关于某解析站的无限Debugger的分析_第4张图片

通过搜索引擎,我们可以得到下面的结论。

constructor是一种用于创建和初始化class创建的对象的特殊方法。

结合整行的混淆代码,可以大致得出这样的一个结论,这一行的混淆代码通过constructor构造了一个执行 debugger 的函数。

那么面对这样的debugger应该怎么办?

其实面对这样的反爬,同样可以使用置空法完成。不过之前我们遇到是将整个函数置空,这里是将construtor置空。

通过在console中键入Function.prototype.constructor=function(){}即可完成。【图1-4】

图1-5

输入这个之后,点击屏幕中的蓝色箭头就可以正常调试了。

Love & Share 

[ 完 ]

喜欢文章,点个在看 

你可能感兴趣的:(Python爬虫进阶必备 | 关于某解析站的无限Debugger的分析)