背景:
刚进实验室,学长说让我先去找点数据。入坑爬虫。看到爬今日头条的资料比较多,想把它作为目标站点上手。抓包、调试 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
>
NODE_PATH 没有指向正确的路径