经过3个月的开发和近4个月的内测,Check酱2.0今天正式发布。
Check酱2.0包含两个版本:命令行和客户端。
Check酱2.0命令行版
Check酱2.0命令行版依赖Node运行环境,在安装Node(建议18以上)以后,可以在终端中运行:
npx fxd-app-check-chan2 main help
第一次运行时会出现提示:
Need to install the following packages:
fxd-app-check-chan2@1.0.6
Ok to proceed? (y)
直接回车可以看到使用帮助:
Version:
1.0.6
Usage:
fxd check-chan2 [command] [options]
Command - main:
...
Command - check:
--url <string> 要打开的页面 URL (required)
--headless <boolean> 是否使用后台模式 (default: true)
--browser <string> 浏览器类型 (default: chromium)
--selectors <string> 要检测的元素的 CSS 选择器,多个用逗号分隔 (default: body) (required)
--ignore_selectors <string> 忽略选中区域中的元素,多个用逗号分隔
--click_selectors <string> 在开始选择前先点击对应元素,多个用逗号分隔
--force_delay <number> 页面加载后,再延迟的秒数,0为不延迟 (default: 0)
--prejs <string> 页面加载完成后执行的自定义 JavaScript 代码
--prejs_args <string> 自定义 JavaScript 代码的参数
--preplay <string> 页面加载完成后执行的自定义 Playwright 代码
--timeout <number> Playwright 操作超时时间,单位毫秒 (default: 60000)
--list <boolean> 选择器是否返回元素列表 (default: false)
--user <string> 浏览器使用的用户目录 (default: default)
--format <string> 返回的数据格式 (default: text)
--wait_type <string> 等待元素出现的方式 (default: domcontentloaded)
--check_result_filter <string> 在返回结果前对其进行加工,是一个callback函数,(data)=>{}
--fast_mode <boolean> 采用node的fetch获取数据,适用于结构简单的html (default: false)
Command - watch:
--url <string> 要打开的页面 URL (required)
--headless <boolean> 是否使用后台模式 (default: true)
--browser <string> 浏览器类型 (default: chromium)
--selectors <string> 要检测的元素的 CSS 选择器,多个用逗号分隔 (default: body) (required)
--ignore_selectors <string> 忽略选中区域中的元素,多个用逗号分隔
--click_selectors <string> 在开始选择前先点击对应元素,多个用逗号分隔
--force_delay <number> 页面加载后,再延迟的秒数,0为不延迟 (default: 0)
--prejs <string> 页面加载完成后执行的自定义 JavaScript 代码
--prejs_args <string> 自定义 JavaScript 代码的参数
--preplay <string> 页面加载完成后执行的自定义 Playwright 代码
--timeout <number> Playwright 操作超时时间,单位毫秒 (default: 60000)
--list <boolean> 选择器是否返回元素列表 (default: false)
--user <string> 浏览器使用的用户目录 (default: default)
--format <string> 返回的数据格式 (default: text)
--wait_type <string> 等待元素出现的方式 (default: domcontentloaded)
--check_result_filter <string> 在返回结果前对其进行加工,是一个callback函数,(data)=>{}
--fast_mode <boolean> 采用node的fetch获取数据,适用于结构简单的html (default: false)
--sendkey <string> 填入后,检测到变化时会调用Server酱发消息
--apprise_server_url <string> apprise的Server URL;需安装 apprise 命令行以后才可使用
--task_title <string> 显示在动态中,非命令行模式则无需填写
--task_icon <string> 显示在动态中,非命令行模式则无需填写
--feed_publish <boolean> 是否发布为Feed,将显示在动态页面 (default: false)
--feed_as_public <boolean> Feed 是否公开,暂未启用 (default: true)
其中 main 命令和 check 命令是等同的,watch 命令则是在 check 之后,还需要发送通知。
以下是一个使用实例:
npx fxd-app-check-chan2 check --url="https://ftqq.com" --selectors=".entry-title" --check_result_filter="(data)=>{data.output=data.output.trim();return data;}" --format="json"
运行输出如下:
{
"merged_html": "\n\n<a href=\"https://ftqq.com/notice/\">看这里看这里</a>",
"merged_text": "\n\n看这里看这里",
"output": "看这里看这里",
"data": [
{
"selector": ".entry-title",
"html": "<a href=\"https://ftqq.com/notice/\">看这里看这里</a>",
"text": "看这里看这里",
"meta": {
"html": [
"<a href=\"https://ftqq.com/notice/\">看这里看这里</a>"
],
"text": [
"看这里看这里"
]
}
}
]
}
Check酱2.0命令行支持Check酱浏览器插件的绝大部分设置,包括忽略选择器(ignore_selectors)、点击选择器(click_selectors),延迟监测(force_delay)。
同时由于基于Node环境,Check酱2.0命令行还支持大量的自定义逻辑,比如自定义JS命令(prejs和prejs_args)、自定义playwright脚本(preplay)。以下是具体的实现代码,供大家了解如何编写。
const userDirFullPath = process.env.FXD_USER_DIR || this.getUserDirFullPath(this.get('user'));
const { browser, page, context } = await this.getBrowserAndMore(userDirFullPath, { headless, browserType:this.get('browser') });
// ...
// 执行自定义 playwirght 代码
const preplay = this.get('preplay');
if (preplay) {
// 定义一个异步函数,用于执行动态代码
const asyncFn = new Function('page', 'context', `return (async () => {${preplay}})();`);
// 执行异步函数
await asyncFn(page, context);
}
// 执行自定义的 js 代码
const prejs = this.get('prejs');
const prejsArgs = this.get('prejs_args');
if (prejs) {
await page.evaluate(prejs, prejsArgs);
}
// ...
// 关闭浏览器
await browser.close();
更多的命令行使用细节,可以参考fxd-app-check-chan。这个文档依然有效,因为2只是添加了一些辅助参数。
Check酱2.0 客户端
Check酱2.0内置于FlowDeer³中,作为其核心应用之一。Check酱2.0能包含了命令行的完整功能,并提供了可视化选择器。
FlowDeer³下载地址
- MacOS apple芯片(arm64):本体+Node安装包
- Windows版 64位:本体+Node安装包
- MacOS Intel芯片(x64):本体+Node安装包
截图
以下是相关功能截图:
应用市场和Check酱2.0快速入口
任务列表
可视化选择器整合到输入框按钮
数据表管理,可用于任务参数
账号保活拆分为独立应用
众筹功能完成度确认
- [ ✔️ ] 任务市场
- [ ✔️ ] 任务管理器
- [ ✔️ ] 任务定时执行
- [ ✔️ ] 可视化选择器
- [ ✔️ ] 数据表管理
- [ ✔️ ] 账号保活
- [ ✔️ ] 支持第三方通知: Apprise
- [ ✔️ ] 支持AI生成任务脚本
- [ ✔️ ] 支持任务列表的上传和下载,方便多设备使用
安装
FlowDeer³客户端支持Windows和MacOS客户端。请移步安装文档。