ma-pony / deepspider

Listed

智能爬虫工程平台 - 基于 DeepAgents + Patchright 的 AI 爬虫 Agent | Intelligent Web Scraping Platform - AI-powered Crawler Agent built on DeepAgents + Patchright

mainModelTool View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:ma-pony/deepspider

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 2357a21Synced Aug 18, 2026

DeepSpider

npm version License: MIT

AI 原生的 JavaScript 逆向工程平台——从真实请求证据出发,定位参数生成链路,并交付可直接请求的实现与可运行 Solver。

DeepSpider 将 DSH Web、Patchright Chromium、Chrome DevTools Protocol(CDP)和独立 Node 语义运行时组合成一套逆向工作台。浏览器负责采集请求、脚本与运行时事实;最终结果必须由非浏览器运行时重新生成,并通过真实请求验证,而不是停留在页面自动化或一次抓取结果。

English

快速开始

需要 Node.js >=24.15.0。全局安装会下载 Patchright Chromium。

npm install -g deepspider
deepspider agent

这是主启动命令。DSH Web 会加载 Spider Preset;新建一个 Session,说明目标 URL、触发路径和目标输出。首版自动语义恢复只支持 Cookie。Header、Query、Body、返回值和导航仍可作为浏览器证据、Output Contract 和手工分析目标,但当前不会由高层工具自动生成 reproduced 结果或 Solver。多个 Session 可以同时运行,各自持有独立浏览器、SessionArtifactStore、Worker 和产物目录。

Ctrl+C 会关闭 DSH Web,并等待所有 Session 的 Patchright Chromium、sdenv Worker 和运行资源退出。

DeepSpider 解决什么问题

  • 沿真实请求的 Initiator、调用栈和脚本源码定位参数写入边界。
  • 分析动态执行、Webpack、Worker、WebAssembly、状态机和高度混淆代码。
  • 用 Hook、Debugger 和属性采集补足浏览器事实,而不是直接修改捕获源码。
  • 将 Cookie 生成所需的浏览器依赖描述成可审计的 Runtime Recipe,再由独立 Worker 执行。
  • 用真实请求验证自动生成的 Cookie,并导出可以脱离浏览器 Session 重跑的 Solver;其他输出继续使用通用浏览器、Hook、Debugger 和 Code Mode 定位与实现。

唯一完成定义

对于当前自动支持的 Cookie 恢复,只有以下链路全部成立才算完成:Browser Oracle 已保存目标证据;Output Contract 与 Runtime Recipe 已绑定当前 Session;独立 sdenv Worker 用全新状态生成 Cookie;CycleTLS 仅使用这些生成值完成真实请求;验证等级为 reproduced;导出的 Solver 能在浏览器关闭后再次得到同一验收结果。

浏览器结果、页面自动化脚本、捕获 Cookie、单次 Hook 日志或仅能回放的请求都不是完成证据。

输出驱动的语义恢复

Browser Oracle → Session Artifact Graph → Output Contract → Runtime Recipe
               → sdenv Worker → Real-request Validation → Solver
阶段作用边界
Browser Oracle用 Patchright Chromium + CDP 观察真实页面、请求、脚本和运行时事实浏览器最终值只形成 observed 证据
Session Artifact Graph关联 Document、Script、动态源码、请求、响应及后续恢复产物原始内容不可覆盖,所有节点属于当前 Session
Output Contract定义要生成的输出和请求成功条件只恢复影响目标输出的语义
Runtime Recipe声明固定值、属性隐藏、window proxy、UA、TLS 与超时站点规则留在 Session Recipe,不进入通用底层分支
sdenv Worker在独立 Node 子进程和全新 Cookie Jar 中执行页面语义不读取 Patchright 最终输出或 browser-data/
Request Validation仅用 Worker 生成值发起真实请求状态与内容条件同时通过才是 reproduced
Solver导出 Contract、Recipe 与独立入口浏览器关闭后仍能重新生成并验证

Output Contract 可以描述 Cookie、Header、Query、Body、返回值和导航。首版端到端自动链路只对 Cookie 实现 Worker 生成、真实请求验证和 Solver 导出;其余类型保留 Contract、Artifact Graph 和手工逆向能力,不宣称自动 reproduced

三种证据等级

等级含义
observed来自 Browser Oracle 的真实观察,可用于定位和建立 Contract
replayed使用已捕获值或响应重放,只能用于诊断和对照
reproduced独立 Node 运行时重新生成目标输出,并通过真实请求验证

Runtime Recipe 的站点边界

确定的固定指纹、属性隐藏、window proxy 配置和站点规则可以写入当前 Session 的 Runtime Recipe。Recipe 与 Contract、引擎版本、上游 Artifact ID 和 SHA-256 一起进入生成结果身份链。通用底层只执行声明式规则,不按站点名称、Cookie 名或风控厂商分支。

Patchright Session 是重要样本,但不是浏览器环境的唯一真值。遇到自动化特征或时序差异时,可结合普通 Chrome、多个 Session 或已确认的目标行为采集新证据,再更新 Recipe。

原始证据与派生产物

捕获的脚本、响应和动态源码保存为不可变 observed Artifact。格式化、去混淆或定点处理会创建新的 derived Artifact,并保留来源 ID、变换说明和内容哈希。Worker 输出保存为 generated Artifact;只有真实请求验证通过,结果才达到 reproduced

一个恢复入口

正常恢复只使用高层工具:

recover_target_output({ url, outputKind, outputSelector?, mode? })

对于 Cookie Contract,工具建立 Artifact Graph、Output Contract 和 Runtime Recipe,启动 Session-owned sdenv Worker,执行真实请求验证并导出 Solver。Header、Query、Body、返回值和导航可以进入证据与 Contract,但当前高层工具不会为它们自动完成独立生成和 Solver 导出。工具只向 Agent 返回阶段状态、证据等级、策略、首个 blocker、Solver Artifact ID 和下一动作;源码、Cookie 值和完整运行日志保留在私有 Session Artifact 中。

mode: "auto" 默认选择语义运行时。mode: "algorithm" 当前没有自动算法引擎,会返回显式 program blocker:algorithm-recovery-engine-not-implemented。随后由 Agent 使用现有 Hook、Debugger 和 Code Mode 手工恢复影响目标输出的局部逻辑,或等待后续算法引擎实现;系统不会把未实现的升级描述成自动完成。

八阶段逆向工作流

intake → evidence → locate → recover → runtime → extraction → validation → handoff
阶段核心任务主要产物
intake明确目标请求、触发路径和交付要求结构化目标与输出类型
evidence在真实页面复现请求并读取完整响应Browser Oracle 证据
locate沿 Initiator、调用栈和源码定位写入边界参数来源与关键 Artifact
recover还原桥接合约和影响输出的关键算子Output Contract
runtime找到浏览器与独立运行时的首次分歧Runtime Recipe
extractionAgent 按 blocker 使用 Hook、Debugger 与 Code Mode 分离算法和环境语义Worker 结果或手工局部算法实现
validation用生成值完成真实请求reproduced Validation Artifact
handoff固化身份、入口和运行说明Solver 或直接请求模块

Coordinator 最多执行三次语义尝试,成功即停止。它不会在尝试之间自动修改 Runtime Recipe 或处理 blocker;三次均未通过时,只返回首个 blocker 和下一动作。Agent 再按该结果补充证据或手工修改 Recipe 后发起新一轮恢复。environment 表示缺失的浏览器语义,resource 表示依赖或网络响应问题,program 表示当前引擎无法执行的程序行为,validation 表示已生成输出但真实请求未接受。

DSH Agent 与 Dialog

  • Sessions:多个任务并行运行,浏览器、Worker 与文件相互隔离。
  • Goals 与 Todo:分别记录任务目标和当前执行项。
  • Code Mode:通过 run_code 与生成的 TypeScript SDK 调用 DeepSpider 工具。
  • Cordis 动态工具:按当前 Agent 权限检查和调用运行时能力。
  • Web Search:查找公开资料;真实页面事实仍由 Browser Oracle 采集。
  • Dialog:浏览器内的可选交互面板,显示浏览器证据、Artifact Graph、Node 生成和请求验证四段状态。

输出类型不明确、需要登录操作或需要升级算法恢复时,DeepSpider 使用 DSH 原生单选、多选和自定义答案协议。browser_dialog 只在当前 Session 已启动浏览器时打开;回答回到同一 Session,不会建立第二套对话状态。

使用方式

命令用途
deepspider agent [--port <number>] [--verbose]启动原生 DSH Web 和 Spider Preset
deepspider mcp启动 stdio MCP 外部适配器
deepspider fetch <url>通过 CycleTLS 发起一次轻量 HTTP 请求
deepspider update检查并更新全局安装
deepspider --version显示版本
deepspider --help显示帮助

fetch 不启动浏览器,也不进入 Agent 逆向流程。MCP stdio 外部适配器向其他客户端提供同一中央工具目录;完整的多 Session 工作流使用 DSH Web。

工具目录

工具组能力
Browser页面操作、标签页与 iframe、截图、DOM、存储、控制台、Dialog
Network请求、响应、Initiator、WebSocket
Script脚本列表、完整源码读取、跨脚本搜索
Debugger断点、调用栈、单步、求值与 logpoint
Hook显式注入与运行时日志查询
Stealth反调试拦截控制
Capture浏览器环境、属性描述符、原型与函数事实
Recoveryrecover_target_output 的 Cookie 独立生成、真实请求验证和 Solver 导出;其他输出保留证据与 Contract

工具数量由中央 Catalog 生成,不作为文档契约固定。

Session 产物与 Solver

~/.deepspider/sessions/<sha256(agent.id)>/
├── evidence/
│   ├── sites/            # 请求、响应、脚本与站点索引
│   └── artifacts/        # Artifact Graph、Contract、Recipe、Run、Validation、Solver
├── runs/                 # sdenv Worker 请求、结果与诊断
├── solvers/              # 可独立运行的 Solver
├── screenshots/
└── browser-data/

每个成功的 Cookie 自动恢复会在 solvers/ 下生成四个文件:

solver.mjs
contract.json
recipe.json
package.json

在该目录使用 npm 安装并运行,安装阶段会构建 sdenv 原生模块:

npm install
node solver.mjs

Solver 创建全新 Cookie Jar,不导入 Patchright,也不读取 Session 的 browser-data/ 或捕获 Cookie。它输出紧凑的验证结果,并在退出前关闭 sdenv 与 CycleTLS。

架构

DSH Web Host Plane
├── Sessions、模型、Goals、Todo、Cordis 与事件路由
└── Spider Agent Plane
    ├── Code Mode + DeepSpider Catalog
    └── Session-owned DeepSpider Runtime
        ├── Patchright Chromium + CDP + Dialog
        ├── Browser Oracle + SessionArtifactStore
        ├── Session Artifact Graph + RecoveryCoordinator
        └── sdenv Worker + CycleTLS Validator + Solver

MCP stdio adapter
└── 同一 DeepSpider Catalog

Host Plane 管理应用级服务和多个 Session;Agent Plane 在单个 Session 内执行逆向任务。RuntimeManager 维护状态边界。Session 被销毁或 Host 收到退出信号时,DeepSpider 先中止当前操作并关闭 Worker,再关闭 Dialog、CDP、Patchright Chromium 和 Store。

开发与发布验证

源码开发使用 Node.js >=24.15.0 和 pnpm 11.21.0

git clone https://github.com/ma-pony/deepspider.git
cd deepspider
pnpm install

pnpm test
pnpm lint
pnpm test:integration
pnpm smoke:pack

集成测试需要本机允许启动 Patchright Chromium。DeepSpider 不会自动加载项目根目录的 .env;无头模式可显式设置 DEEPSPIDER_HEADLESS=true

授权边界

DSH 保存模型 provider 设置与凭据,DeepSpider 不内置账号。Cordis、浏览器调试、脚本执行和网络访问属于高权限能力,只应在可信任务中使用。请仅分析自己拥有或已获授权的目标,并遵守目标条款和适用法律。

License

MIT

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected
DocumentationDetected

Repository information

Language
JavaScript
License
Not reported
Last updated
Aug 18, 2026, 12:18 PM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.