diff --git a/README.md b/README.md index f476ec0..550a285 100644 --- a/README.md +++ b/README.md @@ -46,10 +46,10 @@ ### 方式一:使用二进制文件(推荐) 1. 下载对应平台的二进制文件: - - Windows: `pup-sniffer-win.exe` - - Linux: `pup-sniffer-linux` - - macOS (Intel): `pup-sniffer-macos` - - macOS (Apple Silicon): `pup-sniffer-macos-arm64` + - Windows: `pup-sniffer-win.exe` + - Linux: `pup-sniffer-linux` + - macOS (Intel): `pup-sniffer-macos` + - macOS (Apple Silicon): `pup-sniffer-macos-arm64` 2. 将 `demo.html` 文件放在二进制文件同一目录下 @@ -103,12 +103,12 @@ ### 📦 构建选项概览 -| 构建类型 | 压缩算法 | 体积优化 | 适用场景 | -|----------|----------|----------|----------| -| 标准版 | GZip | 中等 | 通用部署 | -| Brotli版 | Brotli | 较高 | 网络传输优化 | -| 轻量版 | Brotli | 高 | 资源受限环境 | -| 迷你版 | Brotli | 最高 | 极致体积要求 | +| 构建类型 | 压缩算法 | 体积优化 | 适用场景 | +|---------|--------|------|--------| +| 标准版 | GZip | 中等 | 通用部署 | +| Brotli版 | Brotli | 较高 | 网络传输优化 | +| 轻量版 | Brotli | 高 | 资源受限环境 | +| 迷你版 | Brotli | 最高 | 极致体积要求 | ### 🚀 快速构建 @@ -126,6 +126,7 @@ npm run build:mini ### 🎯 平台特定构建 #### 标准版本(GZip 压缩) + ```bash # Windows x64 npm run build:win @@ -141,6 +142,7 @@ npm run build:macos-arm ``` #### Brotli 压缩版本(更小体积) + ```bash # Windows x64 npm run build:win:brotli @@ -156,6 +158,7 @@ npm run build:macos-arm:brotli ``` #### 轻量版本(优化选项) + ```bash # Windows x64 npm run build:win:lite @@ -171,6 +174,7 @@ npm run build:macos-arm:lite ``` #### 迷你版本(最小体积) + ```bash # Windows x64 npm run build:win:mini @@ -190,33 +194,33 @@ npm run build:macos-arm:mini 项目采用了多种优化技术来减小打包体积: 1. **压缩算法**: - - **GZip**:标准压缩,兼容性好 - - **Brotli**:更高压缩率,体积减少 10-15% + - **GZip**:标准压缩,兼容性好 + - **Brotli**:更高压缩率,体积减少 10-15% 2. **PKG 优化选项**: - - `--no-bytecode`:禁用字节码缓存 - - `--public-packages=*`:减少包装开销 - - `--no-warnings`:减少输出体积 + - `--no-bytecode`:禁用字节码缓存 + - `--public-packages=*`:减少包装开销 + - `--no-warnings`:减少输出体积 3. **资源排除**: - - 通过 `.pkgignore` 排除开发、测试、文档文件 - - 排除大型依赖的非必要部分 - - 智能排除开发环境专用模块 + - 通过 `.pkgignore` 排除开发、测试、文档文件 + - 排除大型依赖的非必要部分 + - 智能排除开发环境专用模块 4. **智能配置**: - - 生产环境自动禁用 `pino-pretty` 日志美化 - - 动态检测运行环境,优化资源加载 + - 生产环境自动禁用 `pino-pretty` 日志美化 + - 动态检测运行环境,优化资源加载 ### 📊 体积对比 以 Windows x64 版本为例: -| 版本类型 | 文件大小 | 压缩率 | 说明 | -|----------|----------|--------|------| -| 标准版 | ~46 MB | - | GZip 压缩 | -| Brotli版 | ~44 MB | -4% | Brotli 压缩 | -| 轻量版 | ~42 MB | -9% | Brotli + 优化选项 | -| 迷你版 | ~41 MB | -11% | 最大优化 | +| 版本类型 | 文件大小 | 压缩率 | 说明 | +|---------|--------|------|---------------| +| 标准版 | ~46 MB | - | GZip 压缩 | +| Brotli版 | ~44 MB | -4% | Brotli 压缩 | +| 轻量版 | ~42 MB | -9% | Brotli + 优化选项 | +| 迷你版 | ~41 MB | -11% | 最大优化 | ### 🛠️ 高级构建 @@ -234,12 +238,26 @@ cat docs/BUILD_GUIDE.md [打包工具pkg安装参考](https://www.jb51.net/javascript/329845uie.htm) +[各版本二进制下载地址](https://github.com/vercel/pkg-fetch/releases) + +linux命令安装方法 + +``` +cd /root/.pkg-cache +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 +npm run build:linux:mini +cd dist +./pup-sniffer-linux-mini +``` + **系统要求**: + - Node.js >= 18.0.0 - npm 或 yarn - 足够的磁盘空间(构建过程需要约 200MB 临时空间) **依赖安装**: + ```bash # 安装构建依赖 npm install @@ -258,18 +276,18 @@ npm install -g pkg #### 请求参数 -| 参数 | 类型 | 必需 | 说明 | -|------|------|------|------| -| url | string | ✅ | 要嗅探的页面 URL | -| mode | string | ❌ | 嗅探模式:0=单个链接,1=多个链接(默认:0) | -| is_pc | string | ❌ | 是否模拟 PC:0=移动设备,1=PC(默认:0) | -| timeout | string | ❌ | 超时时间(毫秒,默认:10000) | -| css | string | ❌ | 等待的 CSS 选择器 | -| script | string | ❌ | 页面执行脚本(Base64 编码) | -| init_script | string | ❌ | 页面初始化脚本(Base64 编码) | -| headers | string | ❌ | 自定义请求头(换行分隔) | -| custom_regex | string | ❌ | 自定义匹配正则表达式 | -| sniffer_exclude | string | ❌ | 排除匹配的正则表达式 | +| 参数 | 类型 | 必需 | 说明 | +|-----------------|--------|----|---------------------------| +| url | string | ✅ | 要嗅探的页面 URL | +| mode | string | ❌ | 嗅探模式:0=单个链接,1=多个链接(默认:0) | +| is_pc | string | ❌ | 是否模拟 PC:0=移动设备,1=PC(默认:0) | +| timeout | string | ❌ | 超时时间(毫秒,默认:10000) | +| css | string | ❌ | 等待的 CSS 选择器 | +| script | string | ❌ | 页面执行脚本(Base64 编码) | +| init_script | string | ❌ | 页面初始化脚本(Base64 编码) | +| headers | string | ❌ | 自定义请求头(换行分隔) | +| custom_regex | string | ❌ | 自定义匹配正则表达式 | +| sniffer_exclude | string | ❌ | 排除匹配的正则表达式 | #### 响应示例 @@ -298,15 +316,15 @@ npm install -g pkg #### 请求参数 -| 参数 | 类型 | 必需 | 说明 | -|------|------|------|------| -| url | string | ✅ | 要获取源码的页面 URL | -| is_pc | string | ❌ | 是否模拟 PC:0=移动设备,1=PC(默认:0) | -| timeout | string | ❌ | 超时时间(毫秒,默认:10000) | -| css | string | ❌ | 等待的 CSS 选择器 | -| script | string | ❌ | 页面执行脚本(Base64 编码) | -| init_script | string | ❌ | 页面初始化脚本(Base64 编码) | -| headers | string | ❌ | 自定义请求头(换行分隔) | +| 参数 | 类型 | 必需 | 说明 | +|-------------|--------|----|---------------------------| +| url | string | ✅ | 要获取源码的页面 URL | +| is_pc | string | ❌ | 是否模拟 PC:0=移动设备,1=PC(默认:0) | +| timeout | string | ❌ | 超时时间(毫秒,默认:10000) | +| css | string | ❌ | 等待的 CSS 选择器 | +| script | string | ❌ | 页面执行脚本(Base64 编码) | +| init_script | string | ❌ | 页面初始化脚本(Base64 编码) | +| headers | string | ❌ | 自定义请求头(换行分隔) | #### 响应示例 @@ -409,20 +427,21 @@ npm test ## 命令行参数 -| 参数 | 说明 | 示例 | -|------|------|------| +| 参数 | 说明 | 示例 | +|---------------|--------------------|--------------| | `-port <端口号>` | 指定服务器端口号 (1-65535) | `-port 8080` | -| `-h, --help` | 显示帮助信息 | `--help` | +| `-h, --help` | 显示帮助信息 | `--help` | **端口说明**: + - 如果不指定端口号,程序将从 57573 开始自动查找可用端口 - 如果指定的端口被占用,程序会报错并退出 - 端口号必须在 1-65535 范围内 ## 环境变量 -| 变量 | 说明 | 默认值 | -|------|------|--------| +| 变量 | 说明 | 默认值 | +|------|--------|---------| | HOST | 服务主机地址 | 0.0.0.0 | **注意**: 端口配置请使用 `-port` 命令行参数,不支持通过环境变量设置端口。 @@ -453,6 +472,18 @@ npm test 3. 尝试使用自定义正则表达式 4. 启用调试模式查看详细日志 +### linux使用前置条件 + +```shell +# 安装谷歌浏览器 +apt update +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 +dpkg -i google-chrome-104.deb +apt install -f +dpkg -i google-chrome-104.deb +google-chrome --version +``` + ## 📚 文档 - [API 文档](docs/API_DOCS.md) - 详细的 API 接口说明 @@ -463,7 +494,7 @@ npm test 项目采用 CommonJS 模块化开发,主要文件: - `sniffer.cjs`: 核心嗅探类 -- `server.cjs`: Fastify 服务器 +- `server.cjs`: Fastify 服务器 - `test.js`: 测试脚本 - `package.json`: 项目配置 - `build-optimized.js`: 优化构建脚本 @@ -473,7 +504,7 @@ npm test ```bash # 克隆项目 -git clone +git clone https://github.com/hjdhnx/pup-sniffer.git cd pup-sniffer # 安装依赖 diff --git a/demo.html b/demo.html index 549ade3..0e82d13 100644 --- a/demo.html +++ b/demo.html @@ -452,7 +452,8 @@

📄 页面源码获取