针对现在大部分的网站都是使用 js 加密,js 加载的,并不能直接抓取出来,这时候就不得不使用一些三方类库来执行 js 语句
pip install PyExecJS
execjs 会自动使用当前电脑上的运行环境再次安装 node.js
node.js 下载官网:http://nodejs.cn/download/
建议下载 xxx.msi,他会再安装时自动配置环境变量
linux 环境可以用 apt-get install nodejs 命令进行安装
node -v 显示安装的 nodejs 版本
npm -v 显示安装的 npm 版本
import execjs
#实例化node对象
node=execjs.get()
#js源文件编译
ctx=node.compile(open('./wenjian.js',encoding='utf-8').read())
#执行js函数
funcName='getpwd("{0}")'.format('123456')
#被调用的函数名赋值给funcName,并给函数getpwd传入参数123456
pwd=ctx.eval(funcName)
# 调用函数,funcName为被调用的函数名
print(pwd)
import execjs
inp=input('需要加密的内容')
#读取js文件的内容
with open('weixin.js', 'r', encoding='utf-8') as f:
js_code = f.read()
#通过execjs.compile()进行编译js文件内容
compile_result=execjs.compile(js_code)
# 调用js文件传参
#weixin是js中的function方法名,inp是穿的参
result = compile_result.call('weixin', inp)
print(result)