做网络爬虫抓取页面数据的时候经常会有下面的情况:
很多网站的前端代码里面,会对某些数值或者字符串做加密解密处理后生成令牌,从而达到让其他人无法轻易调用自己对外开放的接口.
这个时候就希望后台能直接执行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