4646### 方式一:使用二进制文件(推荐)
4747
48481 . 下载对应平台的二进制文件:
49- - Windows: ` pup-sniffer-win.exe `
50- - Linux: ` pup-sniffer-linux `
51- - macOS (Intel): ` pup-sniffer-macos `
52- - macOS (Apple Silicon): ` pup-sniffer-macos-arm64 `
49+ - Windows: ` pup-sniffer-win.exe `
50+ - Linux: ` pup-sniffer-linux `
51+ - macOS (Intel): ` pup-sniffer-macos `
52+ - macOS (Apple Silicon): ` pup-sniffer-macos-arm64 `
5353
54542 . 将 ` demo.html ` 文件放在二进制文件同一目录下
5555
103103
104104### 📦 构建选项概览
105105
106- | 构建类型 | 压缩算法 | 体积优化 | 适用场景 |
107- | ---------- | ---------- | ---------- | -- --------|
108- | 标准版 | GZip | 中等 | 通用部署 |
109- | Brotli版 | Brotli | 较高 | 网络传输优化 |
110- | 轻量版 | Brotli | 高 | 资源受限环境 |
111- | 迷你版 | Brotli | 最高 | 极致体积要求 |
106+ | 构建类型 | 压缩算法 | 体积优化 | 适用场景 |
107+ | ---------| --------| ------| --------|
108+ | 标准版 | GZip | 中等 | 通用部署 |
109+ | Brotli版 | Brotli | 较高 | 网络传输优化 |
110+ | 轻量版 | Brotli | 高 | 资源受限环境 |
111+ | 迷你版 | Brotli | 最高 | 极致体积要求 |
112112
113113### 🚀 快速构建
114114
@@ -126,6 +126,7 @@ npm run build:mini
126126### 🎯 平台特定构建
127127
128128#### 标准版本(GZip 压缩)
129+
129130``` bash
130131# Windows x64
131132npm run build:win
@@ -141,6 +142,7 @@ npm run build:macos-arm
141142```
142143
143144#### Brotli 压缩版本(更小体积)
145+
144146``` bash
145147# Windows x64
146148npm run build:win:brotli
@@ -156,6 +158,7 @@ npm run build:macos-arm:brotli
156158```
157159
158160#### 轻量版本(优化选项)
161+
159162``` bash
160163# Windows x64
161164npm run build:win:lite
@@ -171,6 +174,7 @@ npm run build:macos-arm:lite
171174```
172175
173176#### 迷你版本(最小体积)
177+
174178``` bash
175179# Windows x64
176180npm run build:win:mini
@@ -190,33 +194,33 @@ npm run build:macos-arm:mini
190194项目采用了多种优化技术来减小打包体积:
191195
1921961 . ** 压缩算法** :
193- - ** GZip** :标准压缩,兼容性好
194- - ** Brotli** :更高压缩率,体积减少 10-15%
197+ - ** GZip** :标准压缩,兼容性好
198+ - ** Brotli** :更高压缩率,体积减少 10-15%
195199
1962002 . ** PKG 优化选项** :
197- - ` --no-bytecode ` :禁用字节码缓存
198- - ` --public-packages=* ` :减少包装开销
199- - ` --no-warnings ` :减少输出体积
201+ - ` --no-bytecode ` :禁用字节码缓存
202+ - ` --public-packages=* ` :减少包装开销
203+ - ` --no-warnings ` :减少输出体积
200204
2012053 . ** 资源排除** :
202- - 通过 ` .pkgignore ` 排除开发、测试、文档文件
203- - 排除大型依赖的非必要部分
204- - 智能排除开发环境专用模块
206+ - 通过 ` .pkgignore ` 排除开发、测试、文档文件
207+ - 排除大型依赖的非必要部分
208+ - 智能排除开发环境专用模块
205209
2062104 . ** 智能配置** :
207- - 生产环境自动禁用 ` pino-pretty ` 日志美化
208- - 动态检测运行环境,优化资源加载
211+ - 生产环境自动禁用 ` pino-pretty ` 日志美化
212+ - 动态检测运行环境,优化资源加载
209213
210214### 📊 体积对比
211215
212216以 Windows x64 版本为例:
213217
214- | 版本类型 | 文件大小 | 压缩率 | 说明 |
215- | ---------- | ---------- | --------| ------|
216- | 标准版 | ~ 46 MB | - | GZip 压缩 |
217- | Brotli版 | ~ 44 MB | -4% | Brotli 压缩 |
218- | 轻量版 | ~ 42 MB | -9% | Brotli + 优化选项 |
219- | 迷你版 | ~ 41 MB | -11% | 最大优化 |
218+ | 版本类型 | 文件大小 | 压缩率 | 说明 |
219+ | ---------| --------| ------ | --------- ------|
220+ | 标准版 | ~ 46 MB | - | GZip 压缩 |
221+ | Brotli版 | ~ 44 MB | -4% | Brotli 压缩 |
222+ | 轻量版 | ~ 42 MB | -9% | Brotli + 优化选项 |
223+ | 迷你版 | ~ 41 MB | -11% | 最大优化 |
220224
221225### 🛠️ 高级构建
222226
@@ -234,12 +238,26 @@ cat docs/BUILD_GUIDE.md
234238
235239[ 打包工具pkg安装参考] ( https://www.jb51.net/javascript/329845uie.htm )
236240
241+ [ 各版本二进制下载地址] ( https://github.com/vercel/pkg-fetch/releases )
242+
243+ linux命令安装方法
244+
245+ ```
246+ cd /root/.pkg-cache
247+ wget -O fetched-v18.5.0-linux-x64 https://github.catvod.com/https://github.com/vercel/pkg-fetch/releases/download/v3.4/node-v18.5.0-linux-x64
248+ npm run build:linux:mini
249+ cd dist
250+ ./pup-sniffer-linux-mini
251+ ```
252+
237253** 系统要求** :
254+
238255- Node.js >= 18.0.0
239256- npm 或 yarn
240257- 足够的磁盘空间(构建过程需要约 200MB 临时空间)
241258
242259** 依赖安装** :
260+
243261``` bash
244262# 安装构建依赖
245263npm install
@@ -258,18 +276,18 @@ npm install -g pkg
258276
259277#### 请求参数
260278
261- | 参数 | 类型 | 必需 | 说明 |
262- | ------| ------| ------| ------|
263- | url | string | ✅ | 要嗅探的页面 URL |
264- | mode | string | ❌ | 嗅探模式:0=单个链接,1=多个链接(默认:0) |
265- | is_pc | string | ❌ | 是否模拟 PC:0=移动设备,1=PC(默认:0) |
266- | timeout | string | ❌ | 超时时间(毫秒,默认:10000) |
267- | css | string | ❌ | 等待的 CSS 选择器 |
268- | script | string | ❌ | 页面执行脚本(Base64 编码) |
269- | init_script | string | ❌ | 页面初始化脚本(Base64 编码) |
270- | headers | string | ❌ | 自定义请求头(换行分隔) |
271- | custom_regex | string | ❌ | 自定义匹配正则表达式 |
272- | sniffer_exclude | string | ❌ | 排除匹配的正则表达式 |
279+ | 参数 | 类型 | 必需 | 说明 |
280+ | ----------------- | -------- | ---- | --------------------- ------|
281+ | url | string | ✅ | 要嗅探的页面 URL |
282+ | mode | string | ❌ | 嗅探模式:0=单个链接,1=多个链接(默认:0) |
283+ | is_pc | string | ❌ | 是否模拟 PC:0=移动设备,1=PC(默认:0) |
284+ | timeout | string | ❌ | 超时时间(毫秒,默认:10000) |
285+ | css | string | ❌ | 等待的 CSS 选择器 |
286+ | script | string | ❌ | 页面执行脚本(Base64 编码) |
287+ | init_script | string | ❌ | 页面初始化脚本(Base64 编码) |
288+ | headers | string | ❌ | 自定义请求头(换行分隔) |
289+ | custom_regex | string | ❌ | 自定义匹配正则表达式 |
290+ | sniffer_exclude | string | ❌ | 排除匹配的正则表达式 |
273291
274292#### 响应示例
275293
@@ -298,15 +316,15 @@ npm install -g pkg
298316
299317#### 请求参数
300318
301- | 参数 | 类型 | 必需 | 说明 |
302- | ------| ------| ------| ------|
303- | url | string | ✅ | 要获取源码的页面 URL |
304- | is_pc | string | ❌ | 是否模拟 PC:0=移动设备,1=PC(默认:0) |
305- | timeout | string | ❌ | 超时时间(毫秒,默认:10000) |
306- | css | string | ❌ | 等待的 CSS 选择器 |
307- | script | string | ❌ | 页面执行脚本(Base64 编码) |
308- | init_script | string | ❌ | 页面初始化脚本(Base64 编码) |
309- | headers | string | ❌ | 自定义请求头(换行分隔) |
319+ | 参数 | 类型 | 必需 | 说明 |
320+ | ------------- | -------- | ---- | --------------------- ------|
321+ | url | string | ✅ | 要获取源码的页面 URL |
322+ | is_pc | string | ❌ | 是否模拟 PC:0=移动设备,1=PC(默认:0) |
323+ | timeout | string | ❌ | 超时时间(毫秒,默认:10000) |
324+ | css | string | ❌ | 等待的 CSS 选择器 |
325+ | script | string | ❌ | 页面执行脚本(Base64 编码) |
326+ | init_script | string | ❌ | 页面初始化脚本(Base64 编码) |
327+ | headers | string | ❌ | 自定义请求头(换行分隔) |
310328
311329#### 响应示例
312330
@@ -409,20 +427,21 @@ npm test
409427
410428## 命令行参数
411429
412- | 参数 | 说明 | 示例 |
413- | ------| ------| ------|
430+ | 参数 | 说明 | 示例 |
431+ | --------------- | -------------------- | -------- ------|
414432| ` -port <端口号> ` | 指定服务器端口号 (1-65535) | ` -port 8080 ` |
415- | ` -h, --help ` | 显示帮助信息 | ` --help ` |
433+ | ` -h, --help ` | 显示帮助信息 | ` --help ` |
416434
417435** 端口说明** :
436+
418437- 如果不指定端口号,程序将从 57573 开始自动查找可用端口
419438- 如果指定的端口被占用,程序会报错并退出
420439- 端口号必须在 1-65535 范围内
421440
422441## 环境变量
423442
424- | 变量 | 说明 | 默认值 |
425- | ------| ------| --------|
443+ | 变量 | 说明 | 默认值 |
444+ | ------| -------- | - --------|
426445| HOST | 服务主机地址 | 0.0.0.0 |
427446
428447** 注意** : 端口配置请使用 ` -port ` 命令行参数,不支持通过环境变量设置端口。
@@ -453,6 +472,18 @@ npm test
4534723 . 尝试使用自定义正则表达式
4544734 . 启用调试模式查看详细日志
455474
475+ ### linux使用前置条件
476+
477+ ``` shell
478+ # 安装谷歌浏览器
479+ apt update
480+ wget -O google-chrome-104.deb -c https://www.slimjet.com/chrome/download-chrome.php? file=files%2F104.0.5112.102%2Fgoogle-chrome-stable_current_amd64.deb
481+ dpkg -i google-chrome-104.deb
482+ apt install -f
483+ dpkg -i google-chrome-104.deb
484+ google-chrome --version
485+ ```
486+
456487## 📚 文档
457488
458489- [ API 文档] ( docs/API_DOCS.md ) - 详细的 API 接口说明
@@ -463,7 +494,7 @@ npm test
463494项目采用 CommonJS 模块化开发,主要文件:
464495
465496- ` sniffer.cjs ` : 核心嗅探类
466- - ` server.cjs ` : Fastify 服务器
497+ - ` server.cjs ` : Fastify 服务器
467498- ` test.js ` : 测试脚本
468499- ` package.json ` : 项目配置
469500- ` build-optimized.js ` : 优化构建脚本
@@ -473,7 +504,7 @@ npm test
473504
474505``` bash
475506# 克隆项目
476- git clone < repository-url >
507+ git clone https://github.com/hjdhnx/pup-sniffer.git
477508cd pup-sniffer
478509
479510# 安装依赖
0 commit comments