dsh-yunpa:本地凭据与登录态抓取

前言

在 DeepSeek Harness(DSH)里让 agent 访问贴吧、NGA、Pixiv、爱丽丝书屋等站点时,常见障碍是登录墙:要么每次手工贴 cookie,要么把账号密码写进对话。后者既不符合凭据管理习惯,也不利于复用登录态做结构化抓取。dsh-yunpa 是 binskyz 维护的 DSH 联网类插件,把「本机加密凭据库」「无头浏览器登录态」和「带登录态的抓取工具」收在一套流程里,一次登录后由 agent 通过工具复用。下文按定位、能力、安装与典型用法说明,事实以 GitHub 仓库 README 与 package 信息为准。

这是什么

dsh-yunpa(npm 包名 dsh-yunpa,当前版本 0.10.3,MIT 许可证)面向「登录墙后面的内容」:凭据只存本机(DPAPI 包裹主密钥 + AES-256-GCM,明文不落盘、不进对话);浏览器默认走 headless-shell 无窗口模式,并拦掉 11 个 Google 后台域名的外部连接。动作层经 Chrome DevTools Protocol(CDP)完成,README 写明共 31 个 auth_* 与 browser_* 工具,无第三方依赖。设置入口在 DSH 设置中的「云爬」,含概览、凭据库、密码库、站点、诊断五个页签。

社区目录页:https://www.skillhub.cn/plugins/binskyz/dsh-yunpa。DSH 生态强调「一切皆插件」;SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。

核心功能

凭据与登录

  • 本地加密凭据库:auth_vault 用于记住或遗忘账号密码;也可通过 auth_cookie 导入 cookie。
  • 浏览器登录:auth_login 的 mode=browser 是 README 中唯一会弹窗的路径(例如对话里说「登录贴吧」「帮我登 NGA」)。
  • 表单登录:auth_login 的 mode=form;需要验证码时给码后再调一次。
  • 登录态维护:auth_capture 抓取登录态(可选 wipeProfile 抓完清 profile);auth_status 查看当前登录态。

带登录态抓取

  • 单链抓取:auth_fetch,kind:"posts" 为楼层,kind:"threads" 为吧列表等。
  • 多页:auth_fetch {pages:20},贴吧按 pn、NGA 按 page,合并去重、楼层连号。

README 归纳的一条链路示例如下:

贴吧:吧列表(kind=threads) → 帖内楼层(kind=posts, pages=20) → 结构化 JSON 落盘
NGA :帖内楼层(pages=N)   → 作者+正文
Pixiv:作品/系列页 → 正文
书屋:书目 → 章节 → 正文

Edge 密码迁移

Edge 密码库 v20(App-Bound)离线无法解密;插件通过「浏览器自己填 → 读 DOM」完成迁移:auth_edge_list 查看 Edge 中条目,auth_pw_open → 自动填充一次 → auth_pw_grab 抓取。

设置页与自检

  • 装好后在 DSH 设置中出现「云爬」,左侧栏多云图标。
  • 首次使用建议先跑环境自检与浏览器版本检查(见下一节命令)。
  • 开发向自检:node check-all.mjs(13 项)、node smoke.mjs(加载期冒烟,不需浏览器)。

安装与启用

推荐从 npm 安装,命令须与官方 README 一致:

dsh plugin add dsh-yunpa

安装完成后重启 DSH。成功时「设置」里出现「云爬」,工具随 bundle 挂载出现。

运行环境:package.json 要求 Node >=22.19。README 明确 Windows-only(DPAPI、icacls、PowerShell 等依赖)。

改插件源码或排查挂载问题时,仓库提供 node install.mjs、node install.mjs --check、node recover.mjs 等脚本;安装四条件(profile dependencies、bundles、目录联接、cordis 条目)缺一项时症状不同,详见 README 表格。正文不按「git clone」展开源码安装步骤;需要时请直接阅读仓库文档。

典型用法

工具侧(在对话中触发)

你说 动作
登录贴吧 / 帮我登 NGA auth_login mode=browser
用账号密码登 auth_login mode=form
抓登录态 auth_capture(可 wipeProfile)
看登录态 auth_status
抓这个链接 auth_fetch(kind:"posts" / kind:"threads")
翻页抓 auth_fetch {pages:20}
记住账号密码 / 忘了它 auth_vault set / forget
我把 cookie 给你 auth_cookie
Edge 里有什么密码 auth_edge_list
把密码迁移出来 auth_pw_open → 自动填充 → auth_pw_grab

首次使用前的命令行自检

在插件目录或按 README 说明执行:

node check-all.mjs          # 13 项自检,全绿再动手
node upgrade.mjs            # 查看浏览器版本(--apply 更新,含 sha256 与版本校验)

不用浏览器调试口时,可调用 auth_browser_close 关闭;CDP 默认绑定 127.0.0.1:9333–9336,本机任意进程可连,README 要求知悉该限制。

适用场景与注意

适合谁:在 Windows 上跑 DSH、需要 agent 稳定访问上述中文社区或 Pixiv、书屋,且希望凭据留在本机、登录态可重复用于抓帖与翻页的开发者。

使用前请自行核对:

  1. 插件以当前 DSH 进程的用户权限运行,无 OS 级隔离;安装前建议浏览源码与 MIT 许可证,确认符合你的安全策略。
  2. profile 内 cookie 为 v10 格式,同用户进程可解;敏感站点建议使用 auth_capture {wipeProfile:true}。
  3. 仅限 Windows;Linux / macOS 不在 README 支持范围内。
  4. 仅供在你自己的账号与设备上使用;凭据安全依赖本机 DPAPI 与系统账户边界。

结尾

dsh-yunpa 把加密凭据库、无头浏览器登录态和 CDP 抓取合成一套 DSH 工具,减少把密码和 cookie 写进对话的次数,同时覆盖贴吧、NGA、Pixiv、书屋等常见登录墙场景。安装用 dsh plugin add dsh-yunpa,启用后以「云爬」设置页和 auth_* 工具为主路径。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜