# 为什么 AI agent 抓取网页时会遇到 403 错误

> 为什么 2026 年 Claude Code、OpenClaw 和其他 AI agent 中的网页抓取会因 403 失败：Cloudflare 默认设置、robots.txt、rate limit、JavaScript，以及该怎么办。

- URL: https://webreaderapi.com/zh/guides/web-fetch-403-errors/
- 最后更新: 2026-10-22
- 发布者: WebReaderAPI (https://webreaderapi.com)

403 是网站在说“不”。自 2025 年起，越来越多的网站默认对 AI agent 说“不”；自 2026 年 9 月起，Cloudflare 在许多新的广告支持网站上屏蔽 agent 流量。下面说明如何区分各种原因，以及你可以正当做些什么。

**快速回答 — 为什么我的 AI agent 抓取页面时会收到 403？**

通常是因为网站或其 CDN 拒绝自动化流量或 AI 流量。自 2025 年 7 月 1 日起，Cloudflare 对新域名默认屏蔽 AI 爬虫；自 2026 年 9 月 15 日起，对新域名的广告支持页面屏蔽 "Agent" 流量。其他原因包括 rate limit 和登录墙。解决办法是获得许可，而不是伪装。**WebReaderAPI** 返回网站的答复，不扣费；无需 KYC，加密货币支付。

## 网页抓取失败的常见原因

| 属性 | 值 |
| --- | --- |
| 来自 CDN 的 403 | 许多网站的 bot 管理默认屏蔽 AI 爬虫或 agent |
| 来自网站的 403 或 401 | 登录墙、会员区、地区规则，或对已知 agent 的硬性屏蔽 |
| 429 | 短时间内请求过多；网站正在对你限流 |
| 402 | 网站要求付费，例如通过 Cloudflare pay per crawl |
| 返回 200 但正文为空 | 页面用 JavaScript 构建内容；这不是错误，但没东西可读 |
| 抓取前就被拒绝 | 你自己的工具遵守了 robots.txt，跳过了该页面 |

## 2025 和 2026 年网络上发生了什么变化？

大型基础设施提供商把 AI 屏蔽变成了默认设置。三项有日期的变化解释了大多数新增的 403：

- **2025 年 7 月 1 日：** Cloudflare 表示现已默认屏蔽 AI 爬虫，并在每个新域名注册时询问是否允许。同一天它推出了 pay per crawl 的私测版，以 HTTP 402 和价格作答。
- **2026 年 7 月 1 日：** Cloudflare 引入了三类 AI 流量：Search、Agent 和 Training。"Agent" 明确包含 ChatGPT-User 等聊天抓取器。
- **2026 年 9 月 15 日：** 对新域名，Cloudflare 的预设会在展示广告的页面上屏蔽 Training 和 Agent 流量；Search 仍被允许。

为用户抓取页面的 agent 属于 Agent 类别。在 2026 年 9 月之后接入的广告支持网站上，请预期被拒绝。

## 如何区分屏蔽和 bug？

先看状态码和响应体，再改动任何东西。

| 你看到的 | 可能的含义 | 下一步 |
|---|---|---|
| 403 加挑战页或 "access denied" 页面 | 网站或其 CDN 拒绝自动化流量 | 尊重它；寻找 API 或申请访问 |
| 402 加价格 header | 网站按请求出售访问权 | 决定是否通过其渠道付费 |
| 429 | 你发送了过多请求 | 放慢速度，稍后用 backoff 重试 |
| 401，或登录页 | 内容需要账号 | 超出公共 reader 的范围 |
| 200 但几乎没有文本 | 内容由 JavaScript 构建 | 在浏览器中渲染页面 |
| 你的工具提示 robots.txt 不允许 | 网站要求 robots 跳过 | 尊重它 |

只有 429 和空的 JavaScript 页面是你可以在自己这边解决的技术问题。其余都是网站所有者做出的决定。

## agent 开发者可以正当做些什么？

与网站合作，而不是绕过它。以下步骤能解决许多失败，并让你的 agent 站在网站所有者一边：

1. **使用网站自己的渠道。** 许多网站提供 API、RSS 或 Atom feed，或包含你所需内容的 sitemap。
2. **申请访问。** 网站所有者可以在 robots.txt 或 CDN 设置中允许指定 bot。清晰的 User-Agent 和联系页面能让这件事变得容易。
3. **渲染被允许但为空的页面。** 对只有 JavaScript 的页面，使用运行无头浏览器的 reader。
4. **放慢速度并缓存。** 同一页面只读一次并存储，尊重 `Crawl-delay` 和 429 响应。
5. **在网站出售访问权的地方付费。** 402 是一个报价；通过网站渠道接受，或干脆不读该页面。

这些做法都让网站所有者保持控制，也正是让你的 agent 长期有用的原因。

## 为了绕过拒绝，我绝对不能做什么？

绝不伪装 agent 或破解保护。伪造浏览器的 User-Agent、轮换 IP 地址以逃避屏蔽，或破解挑战页面，会把一个礼貌的客户端变成专为攻破访问控制而打造的工具。2026 年，美国两家法院在关于自动化访问搜索结果的诉讼中，将此类技术视为规避。案件仍未结，尚未有定论，但风险并非理论上的。

这也会破坏与你的用户所依赖的网站之间的信任。拒绝是一种信息：记录下来，告诉用户该页面不可用，然后转向其他来源。

## 当网站拒绝时，内置抓取工具会怎么做？

大多数会把错误返回给模型，模型再告诉用户它无法读取该页面。OpenClaw 的文档（查阅于 2026 年 10 月 22 日）称，其内置的 web_fetch 使用 Readability 提取内容，不运行 JavaScript，输出上限为 20,000 个字符；它可以回退到 fetch provider，插件可注册新的 provider。MCP reference fetch server 对模型发起的抓取默认遵守 robots.txt。

当这些工具在允许 robots 但需要 JavaScript 的页面上失败时，能渲染页面的 reader 会有帮助。当它们因网站拒绝而失败时，任何工具都不应改变这个答复。

## 当网站拒绝时，WebReaderAPI 返回什么？

它会清楚地返回拒绝结果，且不向你收费。被 robots.txt 禁止的页面返回 `403 blocked_by_robots`。声明 `ai-input=no` 的网站返回 `403 blocked_by_site_policy`。以任何其他方式拒绝请求的网站返回 `502 target_refused`，并在 `target_status` 中给出网站自己的状态码。

如果网站拒绝我们的请求，我们会返回其答复：我们从不破解 CAPTCHA、不登录账户，也不试图绕过封锁或付费墙。你的 agent 可以准确告诉用户页面为何被跳过。[错误页面](https://webreaderapi.com/zh/docs/errors/) 列出了每个代码及各自的 retry 规则。

## 网页抓取错误：常见问题

### 为什么页面在我的浏览器中能打开，在我的 agent 中却失败？

因为网站区别对待人和自动化客户端。bot 管理可以允许浏览器而拒绝 agent，有些网站还默认屏蔽 AI 流量。页面对读者是公开的，对机器人则未必。

### 重试能解决 403 吗？

很少能。403 是一个决定，而非故障。对 429、超时和网络错误用指数 backoff 重试；把 403 视为最终结果，除非网站所有者改变它。

### WebReaderAPI 能读取我的 agent 读不了的页面吗？

只能读取那些允许 robots 但需要浏览器才能显示文本的页面，因为 WebReaderAPI 在需要时会渲染 JavaScript。它无法读取网站拒绝的页面，也不会去尝试。

### 如何让我的 bot 在某网站上被允许？

使用稳定、描述性的 User-Agent 并附上联系 URL，遵守 robots.txt，保持低请求速率，并向所有者申请。Web Bot Auth 等签名 agent 方案可让网站验证你的身份。

## 来源

1. [新闻稿：AI 爬虫被默认屏蔽](https://www.cloudflare.com/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/) — Cloudflare (2025-07-01)
2. [推出按抓取量付费](https://blog.cloudflare.com/introducing-pay-per-crawl/) — Cloudflare (2025-07-01)
3. [博客：搜索、Agent 与训练流量选项](https://blog.cloudflare.com/content-independence-day-ai-options/) — Cloudflare (2026-07-01)
4. [博客：AI 爬虫与 Agent 的新默认设置](https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/) — Cloudflare (2026-09-15)
5. [网页抓取工具](https://docs.openclaw.ai/tools/web-fetch.md) — OpenClaw (read 2026-10-22)
6. [MCP fetch server](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) — Model Context Protocol (read 2026-10-22)
7. [Reddit 诉 SerpApi LLC](https://www.loeb.com/en/insights/publications/2026/08/reddit-v-serpapi-llc) — Loeb & Loeb (2026-08)
8. [Google 对 SerpApi 的诉讼被驳回](https://seroundtable.com/google-lawsuit-serpapi-dismissed-41731.html) — Search Engine Roundtable (2026-07-22)

---

WebReaderAPI: WebReaderAPI 是一款面向 AI agents 的网页读取 API，可将任何公开网页转换为干净的 Markdown，用加密货币支付，无需上传身份证件。预付费积分低至 US$0.07/千页，永不过期，且遵守 robots.txt。无需 KYC — 无身份证、无自拍、无证件。加密货币支付。
