使用 python3 execjs 怎样执行含有 md5() 方法的 .js 文件?

背景:
刚进实验室,学长说让我先去找点数据。入坑爬虫。看到爬今日头条的资料比较多,想把它作为目标站点上手。抓包、调试 js 后发现了加密参数的 js 函数,跟网上一样保存到本地调用的时候,执行抛出错误:

execjs._exceptions.ProgramError: Error: Cannot find module 'md5-node'

环境:
1.python 3.5 , VSCode
2.node v10.15.2
3.npm v6.4.1

相关代码:
.py 中

import execjs

...
 js1="""
            function Sol(){
        var md5 = require('md5-node');
        var t = Math.floor((new Date).getTime() / 1e3)
          , i = t.toString(16).toUpperCase()
          , s = md5(t).toString().toUpperCase();
        if (8 != i.length)
            return {
                as: "479BB4B7254C150",
                cp: "7E0AC8874BB0985"
            };
        for (var e = s.slice(0, 5), a = s.slice(-5), o = "", n = 0; 5 > n; n++)
            o += e[n] + i[n];
        for (var c = "", l = 0; 5 > l; l++)
            c += i[l + 3] + a[l];
        return {
            as: "A1" + o + i.slice(-3),
            cp: i.slice(0, 3) + c + "E1"
        }
    }
        """
ctx=execjs.compile(js1)
...

直接在 node 中测试却没有问题:

C:\Users\HP>node
> var md5=require('md5-node');
undefined
> console.log(md5('123456'));
e10adc3949ba59abbe56e057f20f883e
undefined
>
阅读 5k
2 个回答

NODE_PATH 没有指向正确的路径

新手上路,请多包涵

楼主你好,请问这个问题你是怎么解决的呀。今天也碰到了一样的错误。在win10系统下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题