aardio爬虫) 实战篇:逆向有道翻译web接口
本文探讨如何将先前使用的Python代码转化为调用和利用ChakraCore调用的JavaScript代码。测试网站选择为fanyi.youdao.com。
在逆向解析方面,主要关注点在于JavaScript的webpack加载器函数和实际调用的函数。详细解读这部分内容,建议参考B站志远一期的教程,该教程对此进行了深入解析。
经过分析,直接在Node.js环境中执行整个JS文件更易于操作,避免了函数间复杂的关联,同时通过添加全局window对象,便于后续调用。
在91565函数所在的另一个JS文件中,将其内容整合至主对象并和e进行合并,从而实现直接调用。
进一步封装了两个函数,以方便外部调用。测试发现,当在JavaScript环境中调用这两个函数后,再通过aardio的run或callFunction进行调用时,可能会遇到一个神秘的错误。尝试解决该bug,但未找到确切原因,考虑到ChakraCore文档相对较少,问题可能与环境配置或库的具体用法有关。
目前的解决策略是在JavaScript内部先执行一次这两个函数,暂不深入探索该bug的根本原因。此外,提供了使用ChakraCore调用的完整代码示例,并将其存储在aardio-extlibs GitHub仓库中,作为ChakraCore用例。
最后,提及了使用先前编写AES库调用的代码示例,作为另一种实现方案。
继续阅读:aardio爬虫) 实战篇:逆向有道翻译web接口在逆向解析方面,主要关注点在于JavaScript的webpack加载器函数和实际调用的函数。详细解读这部分内容,建议参考B站志远一期的教程,该教程对此进行了深入解析。
经过分析,直接在Node.js环境中执行整个JS文件更易于操作,避免了函数间复杂的关联,同时通过添加全局window对象,便于后续调用。
在91565函数所在的另一个JS文件中,将其内容整合至主对象并和e进行合并,从而实现直接调用。
进一步封装了两个函数,以方便外部调用。测试发现,当在JavaScript环境中调用这两个函数后,再通过aardio的run或callFunction进行调用时,可能会遇到一个神秘的错误。尝试解决该bug,但未找到确切原因,考虑到ChakraCore文档相对较少,问题可能与环境配置或库的具体用法有关。
目前的解决策略是在JavaScript内部先执行一次这两个函数,暂不深入探索该bug的根本原因。此外,提供了使用ChakraCore调用的完整代码示例,并将其存储在aardio-extlibs GitHub仓库中,作为ChakraCore用例。
最后,提及了使用先前编写AES库调用的代码示例,作为另一种实现方案。