当前位置: 首页 > 工具软件 > ExecJS > 使用案例 >

python execjs-关于python解析js的库execjs的使用

拓拔飞飙
2023-12-01

前言

什么是execjs库

这是一个能让python程序执行javascript的库

为什么要用execjs库

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

安装execjs库

这里推荐使用pip安装

pip install PyExecJS

使用案例

execjs环境说明

execjs会自动使用当前电脑上的运行时环境(建议使用nodejs作为execjs的执行环境)

查看当前电脑上的execjs环境

print(execjs.get().name)

# 得到结果: Node.js (V8)

牛刀小试default = execjs.get()

print(default) # ExternalRuntime(Node.js (V8))

# eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

print(default.eval("1 + 2"))

# 得到结果: 3

print(execjs.eval(""red yellow blue".split(" ")"))

# 得到结果: ["red", "yellow", "blue"]

上面的代码中:

1)调用了Node.js的环境,执行了js的eval函数,并对1和2进行了加法计算,并得到了正确的结果: 3

2)调用了字符串的切割函数,成功对结果进行了切割,并得到了目标数组: ["red’, "yellow’, "blue’]

官方案例import execjs

ctx = execjs.compile(

"""

function add(x, y) {

return x + y;

}

"""

)

print(ctx.call("add", 1, 2))

# 得到结果: 3

上面中我们自定义了自己的add函数,并通过execjs执行了该函数,并得到了正确结果,这代表在实际使用中,当我们爬虫得到的网页的js满足不了我们的需求时,我们可以自己写自己的js函数,并拼接上去.然后通过得到我们的函数的返回值,来得到我们想要的.

本文章修改于 2019/11/01 16:16:27

 类似资料: