在 DeepSeek Harness (DSH) 中,web_fetch 工具负责获取网页内容。处理复杂的单页应用 (SPA) 或微前端时,传统浏览器引擎占用资源过高。dsh-web-fetch-moli 插件提供了一个基于 Rust 的轻量级解决方案,在保持动态渲染能力的同时,将内存占用控制在 ~50-60MB。
这是什么¶
这是一个 DeepSeek Harness (DSH) 插件,提供轻量级 Moli 后端以渲染 SPA 和微前端。它由 GreyRaphael 维护,遵循 MIT 许可证。
核心功能¶
- 超轻量级内存占用:单实例占用约 50-60MB 内存,相比标准 Chromium/Playwright(约 1GB)减少 90% 以上。适合资源受限的服务器。
- SPA 和微前端渲染:支持复杂的微前端架构(如 qiankun、single-spa),通过 CDP 和 CSP 绕过技术实现原生布局计算。
- 双后端模式:
local(默认):自动管理本地moli serve守护进程。cdp:连接到远程 Moli 或 Chromium CDP 服务。
- 内容去噪:集成 LinkeDOM + Readability + mdream 流程,提取正文并生成 LLM 优化的 GitHub Flavored Markdown。
- 处理 Cloudflare 挑战:能够检测并等待 Cloudflare 验证通过,无需人工干预。
安装与启用¶
插件支持自动下载 Moli 二进制文件。
- 安装插件:
dsh plugin --profile web add github:GreyRaphael/dsh-web-fetch-moli
- 安装完成后,重启
dsh web以加载插件。
典型用法¶
在 DSH 的配置或代码中指定 moli 提供者,并设置后端和去噪参数。
// 在 DSH 上下文中配置
ctx.web.fetchProvider = 'moli';
// 配置选项
// backend: 'local' 或 'cdp'
// denoise: true (启用内容提取)
适用场景与注意¶
- 环境要求:需要 Node.js >= 22。
- 自动下载:首次使用时,插件会自动下载匹配系统架构的 Moli 二进制文件到缓存目录。
- 运行权限:插件以当前 DSH 进程的权限运行。在安装前,建议检查插件的源码和许可证。
总结¶
该插件在内存效率和动态渲染能力之间取得了平衡,适合需要高并发抓取动态页面的场景。更多信息请参考 GitHub 仓库。