针对现在大部分的网站都是使用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内容呢 我们可以先保存到文件中,然后读取编译,在执行"""
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。