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

前言

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值