dsh-scrape-webpage:网页抓取与统计分析插件

前言

在 DeepSeek Harness(DSH)的插件生态里,智能体经常需要把网页内容读进来,再转成摘要、关键词、链接结构或图片分析结果。如果每次都由模型临时拼接 HTTP 请求、解析 HTML、截断正文,代码会重复且容易出错。dsh-scrape-webpage 把这类工作收敛成一个 DSH 组合插件:抓取 http/https 网页,提取标题、描述、正文、H1–H6 结构和链接,输出统计与高频关键词,并支持下载内容图片、接入识图分析器。

这是什么

dsh-scrape-webpage 是一个 Host-only、零依赖的 DSH 组合插件,维护者为 131CDA1,许可证为 MIT。它面向“读取网页内容并做轻量分析”的场景。插件以 bundle 包发布,package.json 中声明 dsh.bundle.patch,通过 dsh plugin 安装后会注册为组合层。

核心功能

下面介绍它提供的主要能力。

  • 网页抓取:支持 http/https,自动重定向;非 2xx 状态码会优雅返回。
  • 内容提取:提取标题、页面描述、正文、H1–H6 标题结构、链接列表;链接列表上限 100。
  • 统计分析:输出字符数、词/字数、标题数、链接数、预计阅读时长、语言倾向(中/英/混合)与高频关键词 Top30。
  • 图片下载:可下载页面内容图片,并返回本地路径供 read_image 分析。
  • 识图扩展:发布 scrape.imageAnalyzer 服务;识图插件注册分析器后,图片分析结果会作为 imageAnalysis 附加在输出中。
  • 沙箱授权:默认在沙箱内抓取;HTTPS 受限时,可通过 sandbox_permissions 与审批获得一次性授权。

图片会下载到类似下面的本地目录:

.scrape-images\<时间戳>\

安装与启用

先确认 pnpm 在 PATH 上;dsh plugin 会转发给 pnpm。首次使用会自动初始化目标 profile。

从 npm registry 安装

下面是推荐的 npm registry 安装命令:

dsh plugin --profile web add dsh-scrape-webpage

从 GitHub 安装

如果从 GitHub 安装,使用:

dsh plugin --profile web add "github:131CDA1/dsh-scrape-webpage"

本地目录调试

本地目录调试必须显式使用 file: 前缀。裸路径或相对路径会被 pnpm 当作 link: 协议,可能导致包无法被解析。

dsh plugin --profile web add "file:D:\path\to\dsh-scrape-webpage"

卸载

卸载命令:

dsh plugin --profile web remove dsh-scrape-webpage

典型用法

经过上面的步骤后,最直接的使用方式是在对话中说:

帮我抓取 https://example.com 并分析

常用参数

常用参数名称如下:

url
maxChars
images
sandbox_permissions
justification

说明:

  • url:要抓取的 http/https 地址。
  • maxChars:返回正文最大字符数,默认 30000,范围 1000–100000
  • images:同时下载的内容图片数,上限 6,默认 0
  • sandbox_permissions:仅支持 danger-full-access,用于 HTTPS 沙箱受限后的重试。
  • justification:与 sandbox_permissions 配套,说明为什么需要更宽权限。

带图片抓取

如果需要图片,先让抓取插件下载图片,再读取返回的本地路径:

帮我抓取 https://example.com 并分析,images: 3

返回中会包含图片的本地相对路径 relPath。之后对 relPath 调用 read_image,即可把图片交给视觉模型分析。

识图插件接入

如果有独立识图插件,可以通过下面服务注册分析器:

ctx.get('scrape.imageAnalyzer')

注册分析器后,带 images 参数且数量大于 0 的抓取会把图片交给分析器,并在输出中附加 imageAnalysis 结果。

安全与限制

  • 协议:仅支持 http/https
  • 上限:链接列表上限 100;图片下载上限 6;maxChars 默认 30000,范围 1000–100000
  • 超时:工具 180s、页面 30s、单图 20s。
  • 沙箱:默认在沙箱内抓取。HTTPS 沙箱 TLS 受限时,模型需显式携带下面参数重试:
sandbox_permissions="danger-full-access"
justification="一句话说明为什么需要更宽权限"

审批只授权当次调用。

  • 平台:无 fetch provider 的部署经 shell 调用 curl.exe;Windows 10 1803+ 自带,其他平台需 PATH 有 curl。
  • 宿主依赖:toolssystemPrompttimer 为硬依赖;webshellsandboxPolicyapprovalsessions 可选,缺失时优雅报错。
  • 权限:插件以当前 dsh 进程权限运行,并可能依赖宿主服务发起网络请求与下载图片。安装前应检查源码与 MIT 许可证。

适用场景与注意

适合在以下场景使用:

  • 需要把网页正文变成可分析文本。
  • 需要标题、链接、关键词、语言倾向、预计阅读时长等统计。
  • 需要下载页面内容图片,并接入视觉或识图分析。

如果任务需要非 http/https 协议,或超出正文、图片数量与超时限制,插件本身不覆盖这些能力,需要另行处理。

结尾

dsh-scrape-webpage 的价值在于把网页读取、结构提取、统计分析和图片分析接入收敛到同一个插件里,减少重复实现。项目地址:

https://github.com/131CDA1/dsh-scrape-webpage
羽毛球分组比赛记分
小程序二维码

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

小夜