前言
什么是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