@xbrowser/cli 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -26
- package/dist/{browser-GURRY444.js → browser-GITRHHFO.js} +4 -3
- package/dist/{browser-DSVV4GHS.js → browser-R56O3CW6.js} +3 -3
- package/dist/{browser-53KUFEEM.js → browser-ZJOZB5CR.js} +4 -4
- package/dist/{cdp-driver-MNPR3HZH.js → cdp-driver-BE3FOMRN.js} +324 -58
- package/dist/{cdp-driver-SSXUGXP6.js → cdp-driver-TOPYJIFL.js} +3 -3
- package/dist/chunk-2SVQTI2O.js +2794 -0
- package/dist/{chunk-2MFXKN32.js → chunk-ACFE6PKF.js} +1013 -119
- package/dist/chunk-BBMRDUYQ.js +260 -0
- package/dist/{chunk-E4O5ZU3H.js → chunk-CAFNSGYM.js} +393 -95
- package/dist/{chunk-DTJRVA76.js → chunk-ETCO4SNK.js} +2 -2
- package/dist/{chunk-YKOHDEFV.js → chunk-JPA2ZT2R.js} +69 -36
- package/dist/{chunk-T4J4C2NZ.js → chunk-JPHCY4TC.js} +12 -2
- package/dist/chunk-KFQGP6VL.js +33 -0
- package/dist/{chunk-ITKPSIP7.js → chunk-MDAPTB7C.js} +6 -25
- package/dist/chunk-OZKD3W4X.js +417 -0
- package/dist/{chunk-42RPMJ76.js → chunk-PPG4D2EW.js} +325 -59
- package/dist/{chunk-IDVD44ED.js → chunk-Q4IGYTKR.js} +19 -7
- package/dist/{chunk-2BQZIT3S.js → chunk-QIK2I3VQ.js} +86 -2501
- package/dist/chunk-WJRE55TN.js +83 -0
- package/dist/cli.js +1435 -1077
- package/dist/{convert-EGFYNICZ.js → convert-LB3GJTLR.js} +3 -3
- package/dist/{convert-EKQVHKB4.js → convert-R3XXYKC6.js} +2 -2
- package/dist/{daemon-client-3VM7VU7O.js → daemon-client-DRCUMNHK.js} +25 -74
- package/dist/{daemon-client-YAVQ343A.js → daemon-client-UZZEHHIV.js} +2 -2
- package/dist/daemon-main.js +2200 -1691
- package/dist/{extract-JUOQQX4V.js → extract-2ZFW2MX7.js} +1 -1
- package/dist/{extract-L2IW3IUB.js → extract-BSYBM4MR.js} +1 -1
- package/dist/{filter-HC4RA7JY.js → filter-KCFO4RSV.js} +1 -1
- package/dist/{filter-VID2GGZ7.js → filter-T7DSZ2X7.js} +1 -1
- package/dist/{human-interaction-W753RVJB.js → human-interaction-UKAS5ZXV.js} +2 -2
- package/dist/index.d.ts +165 -108
- package/dist/index.js +2531 -1680
- package/dist/launcher-QUJ4M2VS.js +19 -0
- package/dist/{launcher-KA7J32K5.js → launcher-YARP45UY.js} +1 -1
- package/dist/{network-store-66A2RATI.js → network-store-XGZ25FFC.js} +1 -1
- package/dist/{network-store-BN6QEZ7R.js → network-store-YVDNUREI.js} +1 -1
- package/dist/{parse-action-dsl-T3DYC33D.js → parse-action-dsl-UM333TL2.js} +1 -1
- package/dist/{proxy-WKGUCH2C.js → proxy-LV4BJ5RC.js} +1 -1
- package/dist/session-recorder-RTDGURIJ.js +8 -0
- package/dist/session-recorder-YI7YYM36.js +7 -0
- package/dist/session-replayer-GLTUICSD.js +276 -0
- package/dist/site-knowledge-SYC6VCDB.js +23 -0
- package/package.json +5 -4
- package/dist/screenshot-CWAWMXVA.js +0 -28
- package/dist/session-recorder-MA75PKTQ.js +0 -7
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# xbrowser
|
|
2
2
|
|
|
3
|
-
> **Browser automation CLI** for web scraping, headless browsing, SEO analysis, and AI agent workflows.
|
|
3
|
+
> **Browser automation CLI** for web scraping, headless browsing, SEO analysis, and AI agent workflows. 49 commands, 69 plugins. A command-line alternative to Playwright, Puppeteer, and Selenium — **no code required**.
|
|
4
4
|
|
|
5
5
|
[](https://github.com/dyyz1993/xbrowser/actions)
|
|
6
6
|
[](https://codecov.io/gh/dyyz1993/xbrowser)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## 特性
|
|
11
11
|
|
|
12
|
-
- **
|
|
12
|
+
- **49 浏览器命令** — 导航、交互、查询、存储、截图,覆盖常见自动化场景
|
|
13
13
|
- **命令链** — 用 `&&`、`,`、`+`、`->`、`;` 串联多个命令,一行搞定复杂流程
|
|
14
14
|
- **管道 & Heredoc** — 支持 stdin 管道和 heredoc 批量执行
|
|
15
15
|
- **录制 / 回放** — 录制浏览器操作为 YAML,随时回放,可转换为 JS/Python/Bash 脚本
|
|
@@ -71,7 +71,7 @@ npm install -g @xbrowser/cli
|
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
73
|
# 打开浏览器,导航到页面
|
|
74
|
-
xbrowser
|
|
74
|
+
xbrowser goto https://example.com
|
|
75
75
|
|
|
76
76
|
# 获取页面标题
|
|
77
77
|
xbrowser title
|
|
@@ -89,7 +89,7 @@ xbrowser session close
|
|
|
89
89
|
|
|
90
90
|
### 单行命令链
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
会话会自动创建,命令链会自动启动浏览器并在执行完毕后关闭:
|
|
93
93
|
|
|
94
94
|
```bash
|
|
95
95
|
# 用逗号分隔
|
|
@@ -178,19 +178,17 @@ xbrowser --cdp auto "goto https://example.com , title"
|
|
|
178
178
|
|
|
179
179
|
| 命令 | 说明 | 示例 |
|
|
180
180
|
|------|------|------|
|
|
181
|
-
| `session open <url>` | 打开浏览器并创建会话 | `xbrowser session open https://example.com` |
|
|
182
|
-
| `session open <url> --name work` | 以指定名称创建会话 | `xbrowser session open https://example.com --name work` |
|
|
183
181
|
| `session close` | 关闭当前会话 | `xbrowser session close` |
|
|
184
|
-
| `session close --
|
|
182
|
+
| `session close --session work` | 关闭指定会话 | `xbrowser session close --session work` |
|
|
185
183
|
| `session close --all` | 关闭所有会话 | `xbrowser session close --all` |
|
|
186
184
|
| `session list` | 列出所有活跃会话 | `xbrowser session list` |
|
|
187
|
-
| `session kill [--
|
|
185
|
+
| `session kill [--session <n>]` | 强制终止会话 | `xbrowser session kill --session work` |
|
|
188
186
|
|
|
189
187
|
### 页面导航
|
|
190
188
|
|
|
191
189
|
| 命令 | 说明 | 示例 |
|
|
192
190
|
|------|------|------|
|
|
193
|
-
| `goto <url>` | 导航到指定 URL | `xbrowser goto https://example.com` |
|
|
191
|
+
| `goto <url>` / `open <url>` | 导航到指定 URL | `xbrowser goto https://example.com` |
|
|
194
192
|
| `goto <url> --waitUntil networkidle` | 指定等待条件 | `xbrowser goto https://example.com --waitUntil networkidle` |
|
|
195
193
|
| `back` | 浏览器后退 | `xbrowser back` |
|
|
196
194
|
| `forward` | 浏览器前进 | `xbrowser forward` |
|
|
@@ -314,15 +312,6 @@ xbrowser --cdp auto "goto https://example.com , title"
|
|
|
314
312
|
| `setViewport <width> <height>` | 设置视口大小 | `xbrowser setViewport 1920 1080` |
|
|
315
313
|
| `setViewport 375 812 --isMobile true` | 移动设备模式 | `xbrowser setViewport 375 812 --isMobile true` |
|
|
316
314
|
|
|
317
|
-
### Daemon 进程
|
|
318
|
-
|
|
319
|
-
| 命令 | 说明 | 示例 |
|
|
320
|
-
|------|------|------|
|
|
321
|
-
| `daemon start` | 启动 daemon | `xbrowser daemon start` |
|
|
322
|
-
| `daemon start --port 9223` | 指定端口启动 | `xbrowser daemon start --port 9223` |
|
|
323
|
-
| `daemon stop` | 停止 daemon | `xbrowser daemon stop` |
|
|
324
|
-
| `daemon status` | 查看 daemon 状态 | `xbrowser daemon status` |
|
|
325
|
-
|
|
326
315
|
### 配置管理
|
|
327
316
|
|
|
328
317
|
| 命令 | 说明 | 示例 |
|
|
@@ -458,7 +447,7 @@ project > browser > page > element
|
|
|
458
447
|
命令执行前会自动检查 Scope 是否满足。不满足时会提示:
|
|
459
448
|
|
|
460
449
|
```
|
|
461
|
-
Error: 需要活跃的页面,请先执行 xbrowser
|
|
450
|
+
Error: 需要活跃的页面,请先执行 xbrowser goto <url>
|
|
462
451
|
```
|
|
463
452
|
|
|
464
453
|
## 插件系统
|
|
@@ -554,14 +543,14 @@ xbrowser 自带以下插件:
|
|
|
554
543
|
|
|
555
544
|
```bash
|
|
556
545
|
# 百度搜索
|
|
557
|
-
xbrowser
|
|
546
|
+
xbrowser goto https://www.baidu.com
|
|
558
547
|
xbrowser baidu search --query "AI 编程"
|
|
559
548
|
|
|
560
549
|
# 百度热搜
|
|
561
550
|
xbrowser baidu hotsearch
|
|
562
551
|
|
|
563
552
|
# GitHub 资料获取
|
|
564
|
-
xbrowser
|
|
553
|
+
xbrowser goto https://github.com
|
|
565
554
|
xbrowser github get-profile
|
|
566
555
|
```
|
|
567
556
|
|
|
@@ -570,8 +559,8 @@ xbrowser github get-profile
|
|
|
570
559
|
### 录制
|
|
571
560
|
|
|
572
561
|
```bash
|
|
573
|
-
# 1.
|
|
574
|
-
xbrowser
|
|
562
|
+
# 1. 打开会话(自动创建)
|
|
563
|
+
xbrowser goto https://example.com
|
|
575
564
|
|
|
576
565
|
# 2. 开始录制
|
|
577
566
|
xbrowser record start --url https://example.com
|
|
@@ -686,6 +675,8 @@ xbrowser filter raw.yaml clean.yaml --exclude hover_enter,hover_leave
|
|
|
686
675
|
|------|------|--------|
|
|
687
676
|
| `XBROWSER_CHROMIUM_PATH` | Chromium 可执行文件路径 | `/Applications/Chromium.app/Contents/MacOS/Chromium` |
|
|
688
677
|
| `XBROWSER_DAEMON_PORT` | Daemon 端口 | `9222` |
|
|
678
|
+
| `XBROWSER_CDP` | 默认 CDP 连接地址(可被 `--cdp` 覆盖) | — |
|
|
679
|
+
| `XBROWSER_SESSION` | 默认会话名称(可被 `--session` 覆盖) | `default` |
|
|
689
680
|
|
|
690
681
|
### 命令行配置
|
|
691
682
|
|
|
@@ -812,7 +803,7 @@ done
|
|
|
812
803
|
### 示例 6:使用插件采集百度热搜
|
|
813
804
|
|
|
814
805
|
```bash
|
|
815
|
-
xbrowser
|
|
806
|
+
xbrowser goto https://www.baidu.com
|
|
816
807
|
xbrowser baidu hotsearch --category tech
|
|
817
808
|
xbrowser session close
|
|
818
809
|
```
|
|
@@ -856,7 +847,7 @@ npm run validate
|
|
|
856
847
|
```
|
|
857
848
|
xbrowser/
|
|
858
849
|
├── src/
|
|
859
|
-
│ ├── commands/ #
|
|
850
|
+
│ ├── commands/ # 49 个浏览器命令定义
|
|
860
851
|
│ ├── builtins/ # CLI 内置命令(config, plugin, session, create)
|
|
861
852
|
│ ├── recorder/ # 录制引擎(录制器 + 回放器)
|
|
862
853
|
│ ├── session/ # 会话管理
|
|
@@ -885,7 +876,7 @@ xbrowser/
|
|
|
885
876
|
| **Setup** | `npm i -g` — 0 config | Install + browser download | Install + browser download | Install + WebDriver + drivers |
|
|
886
877
|
| **Web Scraping** | Built-in (`scrape`, `crawl`, `map`) | Write custom scripts | Write custom scripts | Write custom scripts |
|
|
887
878
|
| **Search** | Built-in multi-engine (`search`) | No | No | No |
|
|
888
|
-
| **Plugin Ecosystem** |
|
|
879
|
+
| **Plugin Ecosystem** | 69 plugins | Limited | Limited | No |
|
|
889
880
|
| **No Code Required** | ✅ CLI commands | ❌ Must write JS/TS | ❌ Must write JS/TS | ❌ Must write code |
|
|
890
881
|
| **Headless Mode** | ✅ Default | ✅ | ✅ | ✅ |
|
|
891
882
|
| **Record/Replay** | ✅ Built-in (`record`/`replay`) | ✅ Codegen | ❌ | ❌ |
|
|
@@ -20,9 +20,10 @@ import {
|
|
|
20
20
|
saveSessionDiskMeta,
|
|
21
21
|
setActivePage,
|
|
22
22
|
touchSession
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-QIK2I3VQ.js";
|
|
24
|
+
import "./chunk-PPG4D2EW.js";
|
|
25
|
+
import "./chunk-BBMRDUYQ.js";
|
|
26
|
+
import "./chunk-KFQGP6VL.js";
|
|
26
27
|
export {
|
|
27
28
|
closeAllSessions,
|
|
28
29
|
closeEphemeralContext,
|
|
@@ -20,9 +20,9 @@ import {
|
|
|
20
20
|
saveSessionDiskMeta,
|
|
21
21
|
setActivePage,
|
|
22
22
|
touchSession
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-CAFNSGYM.js";
|
|
24
|
+
import "./chunk-BBMRDUYQ.js";
|
|
25
|
+
import "./chunk-KFQGP6VL.js";
|
|
26
26
|
export {
|
|
27
27
|
closeAllSessions,
|
|
28
28
|
closeEphemeralContext,
|
|
@@ -20,11 +20,11 @@ import {
|
|
|
20
20
|
saveSessionDiskMeta,
|
|
21
21
|
setActivePage,
|
|
22
22
|
touchSession
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-JPA2ZT2R.js";
|
|
24
|
+
import "./chunk-PPG4D2EW.js";
|
|
25
|
+
import "./chunk-BBMRDUYQ.js";
|
|
26
26
|
import "./chunk-ZZ2TFWIV.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-KFQGP6VL.js";
|
|
28
28
|
export {
|
|
29
29
|
closeAllSessions,
|
|
30
30
|
closeEphemeralContext,
|