dsh-toutiao-reader: 今日头条文章抓取插件

前言

在 DeepSeek Harness (DSH) 的生态中,将真实场景的阅读经验打包成工具是提升智能体能力的关键。dsh-toutiao-reader 正是这样一款插件,它将作者在处理今日头条文章时的实战经验封装为 webfetch 工具与 toutiao-reader 技能。

今日头条的静态页面通常会被其反爬机制拦截(如 __ac_nonce、__ac_signature),直接请求会返回安全验证页,而 web_search 仅能返回摘要。这款插件填补了这一空白:它接收文章链接,返回标题与完整的纯文本内容。

核心功能

该插件主要由两部分组成:

  1. webfetch 工具
    实现三级抓取策略,确保高成功率:

    • 直连: 静态直连,约 1 秒(基于域名缓存记忆哪些站点需要浏览器)。
    • Edge 常驻 CDP: 冷启动约 20 秒,启动后在 9333 端口监听。后续请求约 3-6 秒。复用持久标签页,并主动屏蔽图片与字节跳动 CDN 以提速。支持自动处理安全验证页(质询页)。
    • dump-dom 兜底: 当 CDP 不可用时的一键渲染兜底方案。
  2. toutiao-reader 技能
    封装了一套完整的模型调用文档,涵盖:

    • 今日头条 URL 形态识别。
    • 读取 method 字段以判断抓取层级。
    • 质询页处理与重试节奏控制。
    • 常驻无头浏览器的管理(端口/PID/停止命令)。
    • 针对短文本或空文本的排查逻辑(如视频页、App 插页)。

安装与启用

命令行安装

使用官方 CLI 命令添加插件:

dsh plugin --profile web add dsh-toutiao-reader

插件市场安装

在 DSH Web 界面中:
1. 进入 Settings。
2. 找到 Plugin Market。
3. 搜索 “toutiao” 并安装。

本地开发安装(手动)

如果进行本地开发,需手动创建 Junction 并修改配置:

New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-toutiao-reader" -Target "<plugin dir>"

随后修改该 profile 的 package.json,在 dependencies 中添加 "dsh-toutiao-reader": "link:<plugin dir>",并在 dsh.profile.bundles 中添加 "dsh-toutiao-reader"。

配置

在 DSH Web 的 cordis.patch.yml 中,启用 id-override 模式(仅覆盖 ID,不重新插入):

- id: dsh-toutiao-reader
  config:
    workspace: D:/DSH_Workspace  # 相对 outfile 路径的基目录
    cdpPort: 9333                # CDP 调试端口
    browserPath: ""              # 浏览器路径,留空则自动检测 Edge 或 Chrome
    maxChars: 12000              # 默认文本截断长度
    domainCachePath: ""          # 域名缓存路径,留空则使用 %TEMP%/webfetch-domains.json

典型用法

调用 webfetch

模型调用 webfetch(url),返回结构如下:

{
  "method": "resident-edge-cdp",  // 抓取方式
  "title": "文章标题",
  "text": "文章正文内容...",
  "textLength": 1024,
  "truncated": false,
  "outfile": null,
  "error": null
}

参数说明:
* url (string, required): 文章链接。PC 端 www.toutiao.com/article/<id>/ 效果最佳,移动端/分享页通常无正文。
* maxChars (number): 返回文本上限,默认 12000,最大 60000。超出时 truncated 设为 true。
* outfile (string, optional): 将完整文本(标题+空行+正文)保存到文件。支持绝对路径或相对于 workspace 的相对路径。

注意事项

  1. 冷启动延迟: 首次调用常驻浏览器需要约 20 秒,后续调用在 3-6 秒左右。这是正常现象。
  2. 只读安全: 插件为只读模式,除非指定 outfile,否则不写入本地文件;不读取任何凭证,不涉及手机等隐私数据。
  3. 端口限制: 常驻无头浏览器仅在 127.0.0.1 监听,不对外暴露。
  4. 环境要求: 需要本地安装 Edge 或 Chrome(自动检测),且 Node.js 版本需 ≥ 20。
  5. 并发限制: isConcurrencySafe: false,因为 CDP 复用单一标签页,调用必须串行化。
  6. 文本内容: 如果返回文本很短或为空,通常是因为视频页、问答页或 App 插页。建议切换至 PC 端 URL 使用。

结语

dsh-toutiao-reader 通过整合直连、常驻浏览器和 dump-dom 三级策略,解决了今日头条文章抓取难的问题。它既可作为独立的插件使用,也能与工作区脚本共享常驻浏览器进程,适合需要在 DSH 环境中批量处理新闻或文章内容的开发者。

  • GitHub: https://github.com/RyanShen3/dsh-toutiao-reader
  • 目录: https://www.skillhub.cn/plugins/RyanShen3/dsh-toutiao-reader
羽毛球分组比赛记分
小程序二维码

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

小夜