DeepSeek Harness 插件:图文平台内容批量抓取与 OCR

前言

在对话里按关键词批量抓取小红书笔记与微信公众号文章,并把每篇的正文、图片文字、视频抽帧文字和评论样本读成结构化数据,是智能体开发中常见的需求。已有做法往往需要单独配置爬虫、处理登录状态、解析服务端渲染页面,集成成本高。DeepSeek Harness(DSH)的插件生态通过「一切皆插件」的理念,让这类能力在对话中即插即用。下面介绍 roderickwilliams/dsh-picture-text-reader 插件,它封装了小红书与公众号的批量读取流程,并支持本地 OCR 与视频抽帧,每条结果都携带原文链接。

插件定位

这是 DeepSeek Harness 的一个联网工具插件,维护者为 RoderickWilliams。插件本身很薄,真正执行逻辑的是随包分发的 Python 脚本 python/xhs_batch.py,可与 DSH 技能直接调用。它面向需要从图文平台批量抽取内容的开发者与智能体,以只读方式获取结构化数据,不发布、不互动。

核心功能

插件提供以下工具,按使用场景划分:

  • xhs_search:用于「去小红书搜一下 X」「批量找 X 的笔记并识别内容」。支持多关键词、排序筛选(不指定则四种排序轮换)、图文/视频筛选。
  • xhs_read:用于「把这几篇读一下」,支持小红书笔记链接、博主主页、首页推荐流。
  • xhs_login:小红书搜索与博主主页需要登录;默认弹出 Chrome 登录窗口,扫码一次后 cookie 长期复用。
  • xhs_status:检查后端是否存活、小红书登录状态、cookie 到期时间。
  • gzh_search:用于「搜一下公众号里关于 X 的文章」。走搜狗微信搜索,默认继续逐篇读正文;read:false 只看搜索结果清单。
  • gzh_read:用于「读一下」mp.weixin.qq.com 文章链接。

输出与产物

执行后,产物落在 ~/.xhs-batch-reader/runs/<时间戳>/(公众号在 wechat-runs/),包含:

  • notes.json:结构化 JSON,每条记录含 source_url 字段。
  • notes.md:Markdown 格式,每篇有「原文链接」行。
  • digest.md:摘要 Markdown,每篇有「原文:」行。
  • images/:图片文件。
  • ocr/:图片 OCR 结果。

原文链接在小红书为 https://www.xiaohongshu.com/explore/<note_id>?xsec_token=<token>&xsec_source=pc_search,在公众号为文章原始 URL(https://mp.weixin.qq.com/s?...)。

运行前提

第一次安装完成后需配置一次环境:

  1. Python 3.12+:插件按 XHS_PYTHON → ~/.dsh/runtimes/skills/py/python.exe → python 的顺序查找解释器。
  2. 图片 OCR(可选):python -m pip install rapidocr-onnxruntime;不装也能跑,只是不出图片文字。
  3. 视频抽帧(可选):把 ffmpeg 放进 PATH,或用 XHS_FFMPEG 指向可执行文件。
  4. 小红书只读后端:下载 xpzouying/xiaohongshu-mcp 的 xiaohongshu-mcp-windows-amd64.exe,放到 ~/.xhs-batch-reader/bin/,或用 XHS_MCP_EXE 指向它。首次登录后 cookie 存在 ~/.xhs-batch-reader/cookies.json,之后长期复用。
  5. 登录:调用 xhs_login 弹出 Chrome 登录窗口扫码;xhs_status 会显示后端端口、登录状态和 cookie 到期时间。

环境变量

  • XHS_PYTHON:Python 解释器,默认自动找 DSH 运行时 python,找不到退回 python。
  • XHS_CLI:xhs_batch.py 路径,默认用包内 python/xhs_batch.py。
  • XHS_RUNS:输出根目录,默认 ~/.xhs-batch-reader/runs。
  • XHS_MCP_EXE:小红书只读后端可执行文件。
  • XHS_FFMPEG:ffmpeg 路径。

限制

  • 小红书搜索、博主主页需要登录(扫码一次,cookie 长期复用);只读单篇链接不需要登录,但链接必须带 xsec_token。
  • 公众号搜索依赖搜狗微信,触发反爬时会返回「要求验证码」;此时改用文章链接直接读。搜狗跳转出来的链接带 timestamp/signature 时效签名,过期后请用文章原始 /s/<code> 短链。
  • 一次最多读 50 篇;每篇默认最多 12 张图、视频 4 帧。批量 20 篇通常两三分钟。
  • OCR 会认错个别字,识别结果按原文保留,不做自动纠错。

调研与借鉴

公众号抓取没有引入任何运行时依赖,参考了以下项目的做法(星数取 GitHub API):

项目 ★ License 借鉴点
wechat-article/wechat-article-exporter 13081 MIT 页面字段(var ct/nickname/author/user_name/biz/mid/idx/sn)与 samples/ 真实快照可当回归样本
chyroc/WechatSogou 6400 Apache-2.0 搜狗 cookie(SUV/SNUID)、/link 跳转与 antispider 处理思路
likemaoke/wechat-article-to-md 37 MIT URL→Markdown 的最小解析参考

没有采用 wechatDownload(无源码、无 license)、wechat_articles_spider(需公众号后台扫码,按公众号名抓而非 URL)、MediaCrawler(不支持公众号,且许可限非商业学习)。

安装与启用

在 DeepSeek Harness 环境中,通过以下命令安装插件:

dsh plugin add github:RoderickWilliams/dsh-picture-text-reader

安装后插件即进入可用状态,可在对话中直接调用上述工具。

典型用法

  1. 登录小红书:调用 xhs_login,完成扫码后 cookie 长期复用。
  2. 搜索笔记:xhs_search 关键词与排序参数,返回结构化结果。
  3. 读取单篇或批量:xhs_read 传入链接或博主主页,生成 notes.json 与 notes.md。
  4. 搜索公众号文章:gzh_search 关键词,默认继续读正文;read:false 只看清单。
  5. 读取公众号文章:gzh_read 传入 mp.weixin.qq.com 链接,产出结构化数据。

适用场景与注意

适合需要从小红书与微信公众号批量抽取内容的智能体或开发者。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。仅限只读使用,不发布、不点赞、不评论。

短结尾

该插件将小红书与公众号的批量读取、本地 OCR 与视频抽帧能力集成到 DSH 生态,使智能体在对话中即可完成图文内容结构化抽取。目录页与源码见:https://www.skillhub.cn/plugins/RoderickWilliams/dsh-picture-text-reader 与 https://github.com/RoderickWilliams/dsh-picture-text-reader。

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

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

Xiaoye