From e70449b36155fe925c5d61df09226330c0eb4f4c Mon Sep 17 00:00:00 2001 From: hjdhnx Date: Wed, 12 Oct 2022 10:04:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- py/qkjs/test_py_mini_racer.py | 6 +++++ ...\345\274\272js\345\274\225\346\223\216.md" | 27 +++++++++++++++++++ readme.md | 1 + 3 files changed, 34 insertions(+) create mode 100644 py/qkjs/test_py_mini_racer.py create mode 100644 "python\346\234\200\345\274\272js\345\274\225\346\223\216.md" diff --git a/py/qkjs/test_py_mini_racer.py b/py/qkjs/test_py_mini_racer.py new file mode 100644 index 0000000..97c4e07 --- /dev/null +++ b/py/qkjs/test_py_mini_racer.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# File : test_py_mini_racer.py +# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------ +# Date : 2022/10/12 + diff --git "a/python\346\234\200\345\274\272js\345\274\225\346\223\216.md" "b/python\346\234\200\345\274\272js\345\274\225\346\223\216.md" new file mode 100644 index 0000000..4e08320 --- /dev/null +++ "b/python\346\234\200\345\274\272js\345\274\225\346\223\216.md" @@ -0,0 +1,27 @@ +#### 人生苦短,我用python +#### 不想换行,js最强 +###### 道长踩过的坑,推荐一波python的js引擎 + +#### 从弱到强推荐,大家仔细看 + +| 模块 | 性能 | es6| python交互|相关文档|架构兼容性|个人评价| +| ---- | ---- |---- |---- |---- |---- |---- | +| [pyv8](https://github.com/emmetio/pyv8-binaries)|较差|❌|✅|少|差|年代久远,可以放弃了 +| [PyExecJS](https://github.com/doloopwhile/PyExecJS)|差|❌ |❌|多|好|年代久远,应用挺多,勉强能用 +| [v8py](https://github.com/tbodt/v8py)|好|✅|✅|少|差|文档少,架构兼容性差,不太会用 +| [pyjsparser](https://github.com/PiotrDabkowski/pyjsparser)|一般|❌|❌|少|差|几乎不用 +| [dukpy](https://github.com/amol-/dukpy)|好|部分支持|不确定|几乎没有|差|没见人用过 +| [py_mini_racer](https://github.com/sqreen/PyMiniRacer)|一般|✅|❌|少|差|不支持js交互,文档少,架构兼容性差,不怎么会用 +| [js2py](https://github.com/PiotrDabkowski/Js2Py) | 一般 |部分支持,实际应用鸡肋|✅|还行|好|python交互好,没得选了 +| [quickjs](https://github.com/PetterS/quickjs) | 好 |完美支持|部分支持|几乎没有|好|有测试案例代码,看完就会用,issue有人提了交互的更多代码 + + +### 本项目的最终选择 + +quickjs + js2py + +#### 使用说明 +quickjs负责读取js文件源的模块,速度非常快 +js2py负责python执行js的源逻辑,交互python注入的任意类型变量 +#### 研究方向 +quickjs如何交互python非基础类型数据,看quickjs的pr和issue有人提出过,但是作者没有合并以及修改支持,需要自己动手了 diff --git a/readme.md b/readme.md index 04af28b..1124d89 100644 --- a/readme.md +++ b/readme.md @@ -39,6 +39,7 @@ +[JS引擎的选择](./python最强js引擎.md) [搭建教程](./安卓本地搭建说明.md) | [install_help](./安卓本地搭建说明.md) |[goorm](./道长乱说.md) [dr项目QQ官群](https://qm.qq.com/cgi-bin/qm/qr?k=H2KwcXrMdiR5M2blHR5gjZzPfN_S3N_C&jump_from=webapi) [参考T4](https://github.com/sec-an/TV_Spider/blob/main/spider/sp360.py) -- GitLab