跳转到内容

网页抓取

web_fetch 工具从一个 URL 获取内容并以文本形式返回。适合在对话中阅读文档、检查 API 响应或抓取网页内容。

参数类型必填说明
urlstring要抓取的 URL
max_lengthinteger返回的最大字符数(默认 10,000)
  • 使用 reqwest HTTP 客户端,超时 30 秒
  • 以纯文本返回响应体
  • 支持 HTTP 与 HTTPS
  • 遵循重定向(最多 10 跳,每跳都重新校验)
  • 将输出截断到 max_length,以保持响应可控

抓取一个文档页面:

{
"url": "https://doc.rust-lang.org/std/vec/struct.Vec.html"
}

带上限地抓取 API 响应:

{
"url": "https://api.github.com/repos/pdg-global/rusty/releases/latest",
"max_length": 5000
}

web_fetch 工具包含针对服务器端请求伪造(SSRF)攻击的多层全面防护:

仅允许 httphttps 协议。file://ftp://data:gopher:// 等协议会被拒绝。

拒绝 localhost*.localhost*.local 及其变体。

阻止以下地址范围:

  • 回环127.0.0.0/8::1
  • 私有10.0.0.0/8172.16.0.0/12192.168.0.0/16fc00::/7
  • 链路本地169.254.0.0/16fe80::/10
  • CGNAT100.64.0.0/10
  • TEST-NET 范围与多播地址

工具会解析主机名、固定解析出的 IP,并拒绝那些 DNS 解析到私有或黑名单地址的请求。它为每次请求构建一个带 resolve() 覆盖的客户端,以防止 DNS 重绑定攻击。

每个重定向目标在被跟随前都会对照完整黑名单重新检查。这可防止攻击者在初次有效请求后重定向到内部服务。

  • 无法抓取需要 JavaScript 渲染的页面(单页应用)
  • 不执行 JavaScript;仅返回原始 HTML
  • 部分网站会屏蔽自动化请求;这些会返回错误
  • 不支持二进制内容(图片、PDF);工具会以文本返回原始字节,可能是乱码
  • 大页面会被截断到 max_length 个字符