补环境框架使用介绍¶
本说明文档简单介绍使用补环境框架来调试(和浏览器无环境调试)来补环境,以过 js 检测执行出正常结果。
1. 前提条件¶
补环境框架使用前准备如下:
- 安装
node(版本尽量新,支持es6语法) - 安装
node库- 安装
node-inspect库,浏览器无环境调试时需要(npm install node-inspect) - 安装
node vm2,补环境框架依赖此库(npm install vm2)
- 安装
- 谷歌浏览器,或谷歌内核的浏览器,结合浏览器无环境调试时需要
- 一些
js调试工具,用来快速测试补环境框架导出的代码运行是否正常fiddler js调试插件;乐易编程助手等,太多了,看自己喜好。
2. 补框架方法¶
补环境是个很繁杂的工作,可以先补
window,navigator,location,document这类的原型,其它复杂的可以等到具体js验证时再完善
2.1. 补框架结构介绍¶
补环境框架主要部分在
CatVm2下的browser中,即图中 3 部分。

根据上图简单介绍各部分功能:
- 1 部分
launch.json为vscode运行配置,包含node启动程序和无浏览器调试的配置 - 2 部分
node_modules为安装vm2等node库文件 - 3 部分
browser中为主要内容 - 4 部分
HTMLElements文件中用来存储HTMLElement各种对象所需要的文件,比如div(对应HTMLDivElement文件),canvas(对应HTMLCanvasElement文件) - 5 部分为主要
dom原型链结构需要的文件,需要不断完善其内容 - 6 部分为框架的工具
tools.node是将以下功能拼接而已,不重要vm_memory为框架内存,用于缓存参数及配置vm_print为日志输出vm_proxy为代理模块vm_safefunction为保护函数模块vm_tools更改浏览器的某些参数、catvm2.node同样为拼接dom信息而已- 7 部分为开发方便补环境的方法,比如批量导出原型链上的属性之类的,暂不完善
- 8 部分为程序为调试时需要修改的部分 - code 为当前调试站的 js - index 为框架入口文件,需要确认 codefile 的名字与当前调试文件 code 的名字一致
2.2. 框架调试方法¶
调试方法以问财站点为例,需要获取请求
cookie中的v参数。 对应站点为:问财
-
需要将定位到的
js部分或整体js放到 8 部分的code文件中,用try catch整体包裹上
-
打开框架的调试和打印输出功能
-
看过 补框架结构介绍 部分后,聪明的你应该知道,修改
catvm.memory.config等相关配置即可输出日志。 -
新版框架将所有调试输出存储在
catvm对象上,命令catvm.print.getall和catvm.memory.print都可以查看。
-
然后调试或无环境浏览器调试即可,根据报错缺啥补啥,不断完善环境。

- 调试 js
一般调试将报错的地方解决,测试参数的有效性后,就可以导出供 python 使用了。

3. 结语¶
补环境框架可以解决在手补环境时大量的重复工作,增加键盘和鼠标的寿命。 但要是将此框架变得健壮,需要在调试各种站点时不断完善。或者有时间根据真实浏览器的原型链慢慢补全,也是个繁琐的工作。
注意事项:
- 像一些请求头
ua,href,hostname等参数都写死了,没有问题,可以在code具体站点中重定义。 - 可能遇到导出的代码
v8等js调试工具正常,但是node运行报错,请使用node_vm库运行,或根据浏览器输出内容仔细调试。