dsh-mediacrawler:DeepSeek Harness 与 MediaCrawler 的受控采集适配器

前言

在 DeepSeek Harness(DSH)里做智能体任务时,搜索类 provider 适合处理已经索引好的页面和快速事实。但如果任务需要已登录平台记录、创作者 feed、显式启用的评论或嵌套回复,就需要另一个执行层:能够启动、监督、持久化并导出 MediaCrawler 的运行。

下面介绍 dsh-mediacrawler。它是一个可安装的 DSH profile bundle,也是一个 bounded stdio MCP adapter,用于把独立安装的 MediaCrawler checkout 接入 DSH。

这是什么

dsh-mediacrawlerxwh-01 维护,许可证为 MIT。

它不是 MediaCrawler fork。它不复制、不修改 MediaCrawler 源码,也不改变 MediaCrawler 的许可证。它提供的是 DSH 与本地 MediaCrawler checkout 之间的适配层。

它解决的问题是:让 DSH agent 通过 MCP 工具启动 MediaCrawler 采集,查看运行状态,读取结果,并导出经过 credential-redacted 处理的 ZIP。

核心功能

支持的平台与任务

dsh-mediacrawler 支持以下平台:

  • Xiaohongshu
  • Douyin
  • Kuaishou
  • Bilibili
  • Weibo
  • Tieba
  • Zhihu

支持的任务包括:

  • search
  • post/video detail
  • creator feeds
  • explicitly enabled comments

评论不是默认开启的,需要在单次运行中显式启用。

MCP 工具

dsh-mediacrawler 暴露 12 个 MCP tools:

  1. check
  2. collect
  3. status
  4. runs
  5. result
  6. delete_run
  7. cleanup
  8. stop
  9. logs
  10. artifacts
  11. preview
  12. export

每次运行都是 supervised、persisted,并通过这些 MCP tools 暴露给 DSH。

浏览器隔离

默认 browser_mode=isolated。它会启动 Google Chrome,并使用一个 adapter-owned persistent profile。这样后续运行可以复用登录态,而不需要附着到用户正常使用的 Chrome 会话。

导出

export 会创建一个 credential-redacted ZIP,并返回该 ZIP 的路径和 checksum。

默认导出上限是 256 MiB raw run data。可以通过 DSH_MEDIACRAWLER_MAX_EXPORT_MIB 设置 1 到 4096 之间的值来调整上限。

安装与启用

环境准备

先准备以下运行环境:

  • Python 3.11 或更新版本
  • Node.js 22.19+,且属于 22.x 线;或 Node.js 24+
  • pnpm
  • Google Chrome
  • 一个独立安装的 MediaCrawler checkout,并带有可用的 Python 环境
  • DeepSeek Harness 0.1.0-rc.6

Node.js engine 要求为:

^22.19.0 || >=24.0.0

MediaCrawler 及其浏览器依赖不在本插件中打包。

安装 Python MCP runtime

先为 adapter 准备一个独立 venv,然后安装 Python 包。POSIX 环境下可以这样做:

python3 -m venv "$HOME/.dsh/runtimes/dsh-mediacrawler"
export DSH_MEDIACRAWLER_PYTHON="$HOME/.dsh/runtimes/dsh-mediacrawler/bin/python"
"$DSH_MEDIACRAWLER_PYTHON" -m pip install "dsh-mediacrawler @ git+https://github.com/xwh-01/dsh-mediacrawler.git@v0.3.0"

这一步安装的是 Python MCP runtime,后面 DSH 会通过它启动 adapter。

安装 DSH profile bundle

接下来安装 DSH profile bundle:

npx --yes @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web add "github:xwh-01/dsh-mediacrawler#v0.3.0"

这一步会把 dsh-mediacrawler 作为 profile bundle 添加到 DSH 的 web profile 中。

配置并启动 DSH

在启动 DSH 的同一个 shell 中,导出 MediaCrawler 路径和 Python 解释器路径:

export MEDIACRAWLER_ROOT="/path/to/MediaCrawler"
export MEDIACRAWLER_PYTHON="/path/to/MediaCrawler/.venv/bin/python"

# 可选;默认状态目录为 ~/.dsh-mediacrawler
export DSH_MEDIACRAWLER_STATE_DIR="/path/to/adapter-state"

npx --yes @deepseek-ai/dsh@0.1.0-rc.6 --profile web

DSH_* 变量会被当作 launch settings,应该在 DSH 进程环境中导出。

卸载

卸载 profile bundle:

npx --yes @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web remove dsh-mediacrawler

典型用法

先做环境检查,再做采集和导出。

首次检查

首次使用时,让 agent 调用:

check(deep=true)

这一步用于检查 source paths、CLI 依赖和 browser launch readiness。

查看运行状态

采集过程中,agent 可以通过 status 读取生命周期状态、是否需要用户处理、以及结果数量。

如果需要恢复最近的可持久化运行,可以使用 runs

读取结果与导出

读取结果时可以使用 result。需要导出时调用 export,它返回 ZIP 路径和 checksum。

如果只想查看 artifact 预览,可以使用 preview;如果要列出 typed JSONL artifacts,可以使用 artifacts

删除与清理

delete_run 需要 confirm=true

cleanup 默认 dry_run=true。如果要真正执行,需要显式使用 dry_run=false

两个操作都拒绝 active runs,并且不会删除 persistent browser profiles 或 login state。

适用场景与注意

适合谁

如果任务需要:

  • 已登录平台记录
  • creator feeds
  • 显式启用的评论或嵌套回复
  • 可重复、可导出的运行结果

那么 dsh-mediacrawler 适合把 MediaCrawler 纳入 DSH 的智能体流程。

它不是替代搜索 provider,而是用于需要本地采集和导出的场景。

安全与权限

这个插件会以当前 DSH 进程权限运行。安装前应当检查源码、依赖和许可证。

需要特别注意:

  • 只接受 QR-code login。
  • MCP API 不接受 cookies、手机号或验证码。
  • 评论默认关闭,需要单次运行显式启用。
  • credential redaction 不等于 PII anonymization。
  • 导出内容可能仍包含姓名、电话、邮箱、位置或其他个人数据。
  • 导出会报告 pii_anonymized=falsesafe_to_share=false
  • 它不绕过 login、verification、rate limits、access controls 或 anti-automation systems。

运行边界

采集任务必须有明确 scope 和 hard timeout。timeout_minutes 是硬边界。

对于某些 search 或 creator 流程,max_items 可能不会严格按上游限制生效。插件会报告这类情况,并以 timeout_minutes 作为最终边界。

结尾

经过上面的步骤,dsh-mediacrawler 可以把独立安装的 MediaCrawler 接入 DSH:检查运行时、启动受监督采集、查看状态、读取结果、导出 ZIP,并在需要时停止、清理或删除已完成运行。

GitHub:

https://github.com/xwh-01/dsh-mediacrawler

社区目录:可在 DSH 插件目录按插件名 dsh-mediacrawler 检索。

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

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

Xiaoye