置顶文章

欢迎来到我的博客 😁, 有任何问题,请到 关于 页面获取我的联系方式,联系我。

网课教程(1) 前言

欢迎来到skeleton系列教程 :网课脚本编写教程

什么是脚本?

脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。
脚本语言又被称为扩建的语言, 或者动态语言, 是一种编程语言, 用来控制软件应用程序, 脚本通常是以文本 (ASCⅡ) 保存, 只是在被调用时进行解释或者编译。

阅读更多

Jpptr - 动作(Action)

动作的执行是由 解析器插件 一起协作执行的。

如下动作

1
["goto", "https://enncy.github.io/jpptr/test.html"]

ArrayParser 将其解析成

1
2
3
4
5
{
"use": "function",
"name": "goto",
"args": ["https://enncy.github.io/jpptr/test.html"]
}

最后再由 FunctionPlugin 去执行 puppeteer 方法

1
page.goto("https://enncy.github.io/jpptr/test.html");

解析器和插件都由 jpptr 默认加载

你可以在动作文件中使用 register 参数进行新的解析器或者插件注册, 甚至可以覆盖原有的默认模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"register":{
"parsers":[
{
"name":"number-parser",
"parser":"./number-parser.js"
}
],
"plugins":[
{
"name":"goto-plugin",
"plugin":"./goto-plugin.js"
}
]
},


"launch":{...},
"actions":[]
}
number-parser.js
1
2
3
4
5
6
7
8
9
10
module.exports = function NumberParser(action) {
if (typeof action === "number") {
if (actions === 1) {
return {
use: "goto-plugin",
href: "https://example.com",
};
}
}
};
goto-plugin.js
1
2
3
module.exports = function GotoPlugin(options) {
return [["goto", options.action.href]];
};

如果有以下动作列表

1
2
3
{
"actions": [1, 1]
}

使用自定义的 number-parser 和 goto-plugin 将会解析成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"actions": [
{
"use": "goto-plugin",
"href": "https://example.com",
"actions": [["goto", "https://example.com"]]
},
{
"use": "goto-plugin",
"href": "https://example.com",
"actions": [["goto", "https://example.com"]]
}
]
}

流程是这样的

1.jpptr 调用 number-parser

1 变成 {use: "goto-plugin",href: "https://example.com"}

2.jpptr 调用 goto-plugin

{use: "goto-plugin",href: "https://example.com"}
变成

1
2
3
4
5
{
"use": "goto-plugin",
"href": "https://example.com",
"actions": [["goto", "https://example.com"]]
}

原理就是,如果 插件 仅仅返回一个 动作列表 ,则 jpptr 会自动添加 {"actions":[...]} 的属性, 并且 jpptr 会执行 actions 里面的动作


更多详情请看 插件

Jpptr文档

一个使用 json 语法糖去执行 puppeteer 的框架。
你可以使用 json 去执行 puppeteer , 就像使用 javascript 去执行 puppeteer 一样

阅读更多