# Cloudflare 5 秒盾

> 用 YesCaptcha 通过 Cloudflare 的"请稍候"检查页（5 秒盾），拿到 cf_clearance 等 Cookie 和 User-Agent：CloudFlareTaskS2、CloudFlareTaskS3（不推荐），代理要求和使用方法。

Source: https://docs.yescaptcha.com/zh/tasks/cloudflare-challenge/ · Last verified: 2026-10-15

Cloudflare 5 秒盾是整个页面被 Cloudflare 拦下、显示“请稍候…”“正在检查您的浏览器”的检查页。YesCaptcha 用你提供的代理打开页面并通过检查，返回 `cf_clearance` 等 Cookie 和当时用的 User-Agent。`CloudFlareTaskS3` 每个任务 20 点（0.02 元），异步返回。识别失败、超时自动退点。

> **不推荐:** Cloudflare 的检查策略经常升级，部分网站可能识别不了或拿不到 `cf_clearance`。请先小批量测试；有问题可以联系客服。

- POST `https://api.yescaptcha.com/createTask` (国际节点)
- POST `https://cn.yescaptcha.com/createTask` (国内节点)

## 适用场景

-   页面源码里有 `__cf_chl_rt_tk` 或 `cdn-cgi/challenge-platform`，标题是 `Just a moment...` / “请稍候”：是 5 秒盾。
-   只是表单里嵌着 Cloudflare 的验证框：那是 [Turnstile](https://docs.yescaptcha.com/zh/tasks/turnstile/)，不用这一页。
-   用 requests 之类的库请求时返回 403 和“Just a moment…”，但浏览器能直接打开：多半只是 TLS 指纹被拦，换用能模拟浏览器 TLS 指纹的库（如 curl\_cffi）就能请求，不需要过盾。

## 类型与价格

| 任务类型 | 价格 | 返回方式 | 说明 |
| --- | --- | --- | --- |
| `CloudFlareTaskS2` | 25 点（0.025 元） | 异步 | 不推荐自带代理 |
| `CloudFlareTaskS3` | 20 点（0.02 元） | 异步 | 不推荐自带代理 |

## 请求参数

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `type` | string | 是 | 任务类型，取值见本页"类型与价格" |
| `websiteURL` | string | 是 | 出现验证码的网页地址（完整 URL）。填你看到验证码的网站，不要填验证码厂商的域名 |
| `proxy` | string | 是 | 代理地址，一个字符串，例如 `http://user:pass@proxy.example.com:8080`、`socks5://proxy.example.com:1080`；不支持带密码的 socks5 代理，不能用本机或内网地址 |
| `waitLoad` | boolean | 否 | 是否等页面完全加载后再返回。需要完整网页内容时传 true，会多花一些时间 |
| `requiredCookies` | array | 否 | 要求返回的 Cookie 名称列表，默认 `["cf_clearance"]`；可以写多个，但不保证都能拿到 |
| `blockImage` | boolean | 否 | 是否不加载图片，用于节省代理流量 |
| `postData` | object | 否 | 传了这个字段时，用 POST 方式打开目标地址，内容是这个对象，例如 `{"name": "hi"}` |

> **代理:** `proxy` 必填。Cloudflare 对代理要求高，请用境外的高质量代理；返回 `ERROR_CAPTCHA_UNSOLVABLE` 时先换代理再试。不能用 `127.0.0.1`、`192.168.x.x` 这类本机或内网地址，我们的服务器访问不到；不支持带密码的 socks5 代理。

不要传自定义的 User-Agent，后续请求用接口返回的 `user_agent`。

## 请求示例

POST https://api.yescaptcha.com/createTask

```json
{
  "clientKey": "YOUR_CLIENT_KEY",
  "task": {
    "type": "CloudFlareTaskS3",
    "websiteURL": "https://example.com/",
    "proxy": "http://user:pass@proxy.example.com:8080",
    "waitLoad": false,
    "requiredCookies": [
      "cf_clearance"
    ]
  }
}
```

创建后每 5 秒调用 `getTaskResult`，流程和其他异步任务一样，见 [getTaskResult](https://docs.yescaptcha.com/zh/api/get-task-result/)。

## 返回结果

```json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "cookies": { "cf_clearance": "zqKrlel6E6_SM2707VdArsu2c5.bYqLKU3DOl4tlkCE-1691687641-0-1-8d7f630c..." },
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "request_headers": { "accept-language": "zh-CN,zh;q=0.9", "user-agent": "Mozilla/5.0 ..." },
    "headers": { "server": "cloudflare" },
    "content": "<!DOCTYPE html>..."
  }
}
```

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `cookies` | object | 通过验证后得到的 Cookie，一般包含 `cf_clearance`。要和返回的 `user_agent`、创建任务时用的代理一起使用 |
| `user_agent` | string | 通过验证时用的 User-Agent，后续请求必须用这个值 |
| `request_headers` | object | 通过验证时发出的请求头，建议后续请求带上 |
| `headers` | object | 目标网站的响应头 |
| `content` | string | 目标网页的 HTML 源码 |

## 怎么使用结果

1.  后续请求**同时**用返回的 Cookie、返回的 `user_agent`、创建任务时的同一个代理，Cloudflare 要求三者一致。
2.  请求头尽量带上 `request_headers`，并使用和浏览器一致的 TLS 指纹（例如 curl\_cffi 的 `impersonate` 参数）。
3.  `cf_clearance` 有有效期（有的网站长达 1 小时），有效期内不需要重复过盾，但请求频率太高可能被 Cloudflare 封 IP。
