前言¶
在 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