在写之前,先回答一下标题。
什么是AST呢?
在编程和软件工程中,AST 是抽象语法树(Abstract Syntax Tree)的缩写。它是一种用于源代码的抽象语法结构的树状表现形式,以树状的形式表示源代码的语法结构。
AST有什么用呢?
对于反爬工程师来说,他们可以利用AST把他们写好的JavaScript代码,变的更复杂,更抽象,让人望而止步,从而更好的防护了他们的网站。以下是简单的示例:
混淆前的源代码:
混淆之后的代码:
代码的可读性难度是不是变大了,无疑是给爬虫工程师调试时阅读增加难度
当然爬虫工程师也可以利用AST去还原这些混淆代码,从而降低阅读难度
学习AST需要用到那些知识呢?
废话不多说,直接上干货。
AST在线解析网站:
https://astexplorer.net/
这里推荐一个入门的javascript教程:
https://wangdoc.com/javascript/index.html
做爬虫的或多或少都会用到node.js:
https://nodejs.org/zh-cn/
好了,今天文章就水到这里嘿嘿
下篇文章开始记录学习AST的日记