python 爬虫调用 js 的库之 execjs

python 爬虫调用 js 的库之 execjs


针对现在大部分的网站都是使用 js 加密,js 加载的,并不能直接抓取出来,这时候就不得不使用一些三方类库来执行 js 语句


1. 安装

pip install PyExecJS

2. 运行环境时

execjs 会自动使用当前电脑上的运行环境再次安装 node.js

node.js 下载官网:http://nodejs.cn/download/
建议下载 xxx.msi,他会再安装时自动配置环境变量
linux 环境可以用 apt-get install nodejs 命令进行安装

3.环境检测

node -v 显示安装的 nodejs 版本
npm -v 显示安装的 npm 版本

4.基本使用

  1. 实例化node对象
import execjs
#实例化node对象
node=execjs.get()
  1. js源文件编译
#js源文件编译
ctx=node.compile(open('./wenjian.js',encoding='utf-8').read())
  1. 执行js函数
#执行js函数
funcName='getpwd("{0}")'.format('123456')
#被调用的函数名赋值给funcName,并给函数getpwd传入参数123456
pwd=ctx.eval(funcName)
# 调用函数,funcName为被调用的函数名
print(pwd)
  1. 实战练习
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)


你可能感兴趣的:(爬虫,js逆向,execjs,python,爬虫,javascript)