dsh-mediacrawler:DeepSeek Harness 與 MediaCrawler 的受控採集適配器

前言

在 DeepSeek Harness(DSH)裏做智能體任務時,搜索類 provider 適合處理已經索引好的頁面和快速事實。但如果任務需要已登錄平臺記錄、創作者 feed、顯式啓用的評論或嵌套回覆,就需要另一個執行層:能夠啓動、監督、持久化並導出 MediaCrawler 的運行。

下面介紹 dsh-mediacrawler。它是一個可安裝的 DSH profile bundle,也是一個 bounded stdio MCP adapter,用於把獨立安裝的 MediaCrawler checkout 接入 DSH。

這是什麼

dsh-mediacrawler 由 xwh-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=false 和 safe_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 檢索。

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

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

小夜