Python调用 JS -PyExecJS, Python 调用 JS -js2py

Python调用 JS -PyExecJS

image-20220805153635017

日常 Web 端爬虫过程中,经常会遇到参数被加密的场景,因此,我们需要分析网页源代码

通过调式,一层层剥离出关键的 JS 代码,使用 Python 去执行这段代码,得出参数加密前后的 Python 实现

//计算两个数的和
function add(num1, num2) {
  return num1 + num2;
}

安装

https://github.com/doloopwhile/PyExecJS

PyExecJS 是使用最多的一种方式,底层实现方式是:在本地 JS 环境下运行 JS 代码

pip install PyExecJS==1.5.1

调用JS代码

import execjs


js_content = '''
function add(num1, num2) {
   return num1 + num2;
}
'''
# 编译加载js字符串
pej = execjs.compile(js)
rs = pej.call("add", 2, 3)
print(rs)

Python 调用 JS -js2py

image-20220805164355053

https://github.com/PiotrDabkowski/Js2Py

js2py作为一个纯 Python 实现的 JS 解释器,可以完全脱离 JS 环境,直接将 JS 代码转换为 Python 代码

pip install js2py==0.71

然后使用 js2py 中的EvalJs()方法生成一个上下文对象

import js2py


js_source='''
function add(num1,num2){
   return num1+num2
}
'''
# 建立js执行的上下文
ctx = js2py.EvalJs()
# 解析js代码
ctx.execute(js_source)
# 调用js里的方法
rs = ctx.add(100,210)
print(rs)

 

posted @   jiang_jiayun  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示