C#通过Jurassic实现运行js脚本代码

做网络爬虫抓取页面数据的时候经常会有下面的情况:
很多网站的前端代码里面,会对某些数值或者字符串做加密解密处理后生成令牌,从而达到让其他人无法轻易调用自己对外开放的接口.
这个时候就希望后台能直接执行js代码,省得还要自己写一遍.
本人主要用C#来写,写一下c#执行js脚本代码的步骤.
c#执行js脚本的库有很多,推荐用jurassic,简单通用,限制少.
首先jurassic的dll文件推荐直接用nuget安装,比较省心省事.

关键代码如下:

...
using Jurassic;

...
string jsFun = @"
    ....
    function aaa(a,b){
        return a + b;
    }
    ....
";    // js 脚本 脚本里面可以复制很多个js的function
ScriptEngine sc = new ScriptEngine();
sc.Execute(jsFun);    // 执行js脚本 
double z = sc.Evaluate<double>("aaa(5,6);"); // 注意如果是字符串变量的话,变量左右要加 '
这样就能运行js脚本的函数得到最终值了.

sc.Evaluate还能执行js表达式,不过上面的用法用的最多,其他的就不多说了

标签: none

添加新评论