Web Fetch Skill 是一个面向 Claude 的技能,用于在实施安全控制、防止数据外泄的前提下,安全地检索并分析来自用户提供的 URL 或搜索结果的网络内容。
一、用途与适用场景 当出现以下情况时可使用本技能:用户提供一个 URL 需要抓取并分析;用户要求检索某个网页的内容;用户希望基于 WebSearch 结果获取完整内容;用户需要从在线托管的 PDF 中提取信息;用户要求分析文档、博客文章或网络资源。
二、安全控制
- 域名过滤:WebFetch 工具支持域名过滤以限制可访问的站点,分为两种方式——Allowed Domains(白名单方式,仅允许这些域名)和 Blocked Domains(黑名单方式,除这些域名外全部允许)。
- 重要原则:绝不构造或猜测 URL。只能使用用户明确提供的 URL、WebSearch 结果返回的 URL,以及本地文件中找到的 URL(需用户确认)。
- 最大用量跟踪:为防止数据外泄,需跟踪每次会话中的 WebFetch 调用次数。默认限制为每个对话 10 次抓取(可根据用户需求调整);警告阈值为抓取 7 次时提醒用户;硬性停止为超出限制后需用户明确批准。
三、使用方式
- 单个 URL 抓取:用户提供单个 URL 时,验证 URL 为用户提供(非生成)→ 确定合适的分析提示词 → 使用 WebFetch 并给出清晰具体的 prompt → 递增抓取计数器 → 分析并呈现结果。示例:WebFetch 的 url 为 https://example.com/article,prompt 为“Extract and summarize the main points of this article, including key arguments and conclusions.”
- 来自搜索结果的多个 URL:用户要求搜索并分析靠前结果时,先执行 WebSearch,向用户展示搜索结果,询问用户要抓取哪些 URL(不要自行假设),按用户批准的顺序依次抓取,对照 max_uses 跟踪总抓取数,并跨来源综合发现。
- 域名过滤:当用户指定域名限制时,例如“抓取 Python 文档但避开第三方博客”,可应用 allowed_domains: ["docs.python.org", "peps.python.org"],或 blocked_domains: ["medium.com", "dev.to", "blogger.com"]。示例中 WebFetch 的 url 为 https://docs.python.org/3/library/asyncio.html,prompt 为“Explain the asyncio event loop and provide key usage examples”,并附带 allowed_domains。
- PDF 内容检索:抓取 PDF 文档时,确认 URL 以 .pdf 结尾或用户确认为 PDF,使用针对学术内容的特定提示词,WebFetch 自动处理 PDF 页面,提取文本和视觉内容,并给出结构化分析。示例 prompt 为“Extract the abstract, methodology, key findings, and conclusions from this research paper.”
四、工作流模式 接收用户的 URL 请求 → 验证 URL 来源(用户提供/搜索结果)→ 对照 max_uses 检查抓取计数器 → 如指定则应用域名过滤 → 构造具体清晰的提示词 → 执行 WebFetch 工具 → 递增计数器 → 分析结果 → 向用户呈现发现。
五、最大用量实现 在对话中跟踪抓取次数:初始化 fetch_count = 0;每次 WebFetch 后 fetch_count += 1;达到 7 次时提示“Note: Approaching fetch limit (7/10). Let me know if you need to adjust.”;达到 10 次时提示“Reached fetch limit (10/10). Do you want to continue? This helps prevent unintended data access.”;超过 10 次需用户明确回复“yes”后才继续。重置条件:每次新对话开始时重置;用户明确要求重置时重置;绝不自动在对话中途重置。
六、提示词编写最佳实践 应创建具体、可执行的 WebFetch 提示词。好的提示词示例:“Extract the installation instructions and list all dependencies mentioned”“Summarize the main argument and supporting evidence from this article”“List all API endpoints documented on this page with their parameters”“Extract code examples showing async/await usage”。不佳的提示词示例:“Tell me about this page”(过于模糊)、“What does this say?”(目标不清)、“Read this”(未要求分析)、“Everything”(过于宽泛)。
七、错误处理
- 重定向检测:当 WebFetch 返回重定向消息时,WebFetch 指示重定向到不同主机 → 向用户呈现重定向 URL → 请求确认是否跟随 → 用重定向 URL 发起新的 WebFetch → 计为单独一次抓取。
- 抓取失败:若 WebFetch 失败,检查 URL 格式(有效、完整);确认域名过滤没有阻止;确认 URL 可访问(不在认证之后);建议替代方案(搜索缓存版本);不要自动重试(会消耗 max_uses)。
八、示例 示例 1 简单文章抓取:用户要求抓取并总结某博客文章,使用 WebFetch,prompt 为“Summarize the new features described, including their benefits and any code examples provided”,抓取计数 1/10,呈现要点总结。 示例 2 搜索+选择性抓取:用户要求查找 Rust 错误处理文章并分析最佳一篇,先 WebSearch“Rust error handling best practices”,展示前 5 条结果,用户选择第二条,仅抓取所选 URL,抓取计数 1/10,分析并解释 Rust 错误处理模式。 示例 3 带域名过滤的多次抓取:用户要求比较 Python 与 Rust 官方异步文档,分别以 allowed_domains 限定 docs.python.org 和 doc.rust-lang.org 抓取,抓取计数 1/10 与 2/10,最后综合比较。 示例 4 PDF 研究论文:用户要求分析某 ML 论文,WebFetch 提取摘要、方法、数据集、关键结果与主要结论,抓取计数 1/10,呈现结构化分析。
九、安全检查清单 每次 WebFetch 前确认:URL 为用户提供或来自搜索结果(非生成);抓取计数在限制内或已获用户批准;如指定则已应用域名过滤;提示词具体且有目的;不抓取敏感/内部 URL;用户了解将要抓取什么。
十、与其他技能的集成 本技能可与以下技能良好配合:summarization(抓取内容后总结)、code-review(抓取代码示例用于分析)、research(从多个来源收集信息)、learning(抓取文档与教程)。
十一、限制 需要注意:无法构造 URL,只能使用明确提供的 URL;不支持认证,无法抓取登录后的内容;存在速率限制,部分站点可能阻止自动请求;内容过大时超大页面可能被摘要处理;动态内容,JavaScript 渲染的内容可能无法获取;缓存时序,15 分钟缓存可能显示过期内容。
十二、最佳实践总结 应做到:始终使用用户提供或搜索返回的 URL;跟踪抓取次数并在接近限制前警告;编写具体、可执行的提示词;适当时应用域名过滤;显式处理重定向;向用户清晰呈现发现。不应做:绝不生成或猜测 URL;绝不在无用户意图时自动抓取;绝不在未经批准时绕过 max_uses;绝不抓取敏感/内部域名。
十三、快速参考 抓取单个 URL:WebFetch(url, prompt),计数 +1;带白名单抓取:WebFetch(url, prompt, allowed_domains=[...]);带黑名单抓取:WebFetch(url, prompt, blocked_domains=[...]);抓取 PDF:WebFetch(url, prompt) 自动检测 PDF;查看抓取计数:查看内部计数器,7 次警告、10 次停止;处理重定向:获取重定向 URL → 新 WebFetch,每次计数 +1。
十四、关于收费、价格、平台支持等 资料中暂未提供关于收费、价格或具体平台支持范围的信息。