针对现在大部分的网站都是使用js加密,js加载的,并不能直接抓取出来,这时候就不得不适用一些三方类库来执行js语句
execjs,一个比较好用且容易上手的类库(支持py2,与py3),支持 JS runtime。
官网:https://pypi.org/project/PyExecJS/
# pip install pyexecjs
# 一node.js为引擎
# 检测运行环境
import execjs
print(execjs.get().name)
最简单的代码案例 使用eval执行js代码
import execjs
e = execjs.eval('a=new Array(1,2,3)')
print(e)
如何处理内容比较多的js呢
str1 = """
function test(data){
return data;
}
"""
# 先吧字符串编译成js代码
cx_js = execjs.compile(str1)
# 调用call方法去执行js代码
a = cx_js.call("test", "122") # 第一个为函数名,后面的为参数,多的就用逗号隔开
print(a)
"""如果是比较大的js内容呢 我们可以先保存到文件中,然后读取编译,在执行"""
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python博客。
Powered By python教程网 鲁ICP备18013710号
python博客 - 小白学python最友好的网站!