1.node.js:
其提供了一个浏览器环境 可以让我们不用在非在浏览器中运行JS代码,支持第三方安装它的基础上运行JS文件
2.涉及到的python基础语法:
读文件——
with open(文件路径,操作类型(r),encoding=’utf-8′) as f:
data=f.read()
3.pyexecjs库:
作用:链接python和JS代码 使得JS代码可以被python代码调用运行
安装方法:pip install pyexecjs
导入方法:import execjs (没有py)
具体使用方法:在上文通过已获取的JS文件内容为data后
编译语法: execjs.complie(JS文件内容)
此时原来的data已被编译 不在为字符串类型
注意——:
原JS文件不要出现调用文件内函数的代码,这可能会导致系统报错
调用语法:execjs.complie(JS文件内容).call(”函数名”,参数1,参数2…)
代码实例:
demo.js:
function my(x){
return “hello,world”+x
}
test.py:
import execjs
with open(/.demo.js,”r”,encoding=’utf-8′) as f:
data=f.read()
d=execjs.complie(data).call(“my”,”thanks”)
print(d)
test.py代码运行结果应为:
hello,world thanks
下面是一些关于中文输出问题:
在具体调用时,输出部分中文可能报错,这是由于编码问题
解决方法:
1- 进入subprocess库的源代码
2- 搜索encoding 662行处将encoding=None的None改为’UTF-8′
py爬虫之关于JS逆向学习【基础篇关于py调用js代码】
释放双眼,带上耳机,听听看~!