前言¶
在 DeepSeek Harness (DSH) 的生态中,将真实场景的阅读经验打包成工具是提升智能体能力的关键。dsh-toutiao-reader 正是这样一款插件,它将作者在处理今日头条文章时的实战经验封装为 webfetch 工具与 toutiao-reader 技能。
今日头条的静态页面通常会被其反爬机制拦截(如 __ac_nonce、__ac_signature),直接请求会返回安全验证页,而 web_search 仅能返回摘要。这款插件填补了这一空白:它接收文章链接,返回标题与完整的纯文本内容。
核心功能¶
该插件主要由两部分组成:
-
webfetch 工具
实现三级抓取策略,确保高成功率:- 直连: 静态直连,约 1 秒(基于域名缓存记忆哪些站点需要浏览器)。
- Edge 常驻 CDP: 冷启动约 20 秒,启动后在 9333 端口监听。后续请求约 3-6 秒。复用持久标签页,并主动屏蔽图片与字节跳动 CDN 以提速。支持自动处理安全验证页(质询页)。
- dump-dom 兜底: 当 CDP 不可用时的一键渲染兜底方案。
-
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 的相对路径。
注意事项¶
- 冷启动延迟: 首次调用常驻浏览器需要约 20 秒,后续调用在 3-6 秒左右。这是正常现象。
- 只读安全: 插件为只读模式,除非指定
outfile,否则不写入本地文件;不读取任何凭证,不涉及手机等隐私数据。 - 端口限制: 常驻无头浏览器仅在
127.0.0.1监听,不对外暴露。 - 环境要求: 需要本地安装 Edge 或 Chrome(自动检测),且 Node.js 版本需 ≥ 20。
- 并发限制:
isConcurrencySafe: false,因为 CDP 复用单一标签页,调用必须串行化。 - 文本内容: 如果返回文本很短或为空,通常是因为视频页、问答页或 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