flow / docs /zh /usage /hcaptcha.md
zbq111's picture
Upload 75 files
504b397 verified
# hCaptcha 使用指南
hCaptcha 通过 iframe 组件展示验证码挑战。求解器使用 Playwright 控制的 Chromium 访问目标页面,点击 hCaptcha 复选框,等待挑战完成,提取响应令牌。
## 支持的任务类型
| 任务类型 | 说明 |
|---------|------|
| `HCaptchaTaskProxyless` | 基于浏览器的 hCaptcha 求解 |
## 必填字段
| 字段 | 类型 | 说明 |
|------|------|------|
| `websiteURL` | string | 包含验证码的页面完整 URL |
| `websiteKey` | string | 页面 HTML 中的 `data-sitekey` 值 |
## 测试目标
hCaptcha 提供官方测试密钥:
| URL | Site key | 行为 |
|-----|----------|------|
| `https://accounts.hcaptcha.com/demo` | `10000000-ffff-ffff-ffff-000000000001` | 始终通过(测试密钥) |
| `https://demo.hcaptcha.com/` | `10000000-ffff-ffff-ffff-000000000001` | 始终通过(测试密钥) |
## 创建任务
```bash
curl -X POST http://localhost:8000/createTask \
-H "Content-Type: application/json" \
-d '{
"clientKey": "your-client-key",
"task": {
"type": "HCaptchaTaskProxyless",
"websiteURL": "https://accounts.hcaptcha.com/demo",
"websiteKey": "10000000-ffff-ffff-ffff-000000000001"
}
}'
```
## 轮询结果
就绪时返回:
```json
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "P1_eyJ0eXAiOiJKV1QiLC..."
}
}
```
!!! note "字段命名"
令牌以 `solution.gRecaptchaResponse` 返回,保持与 YesCaptcha API 的兼容性。
## 验收状态
| 目标 | Site key | 状态 | 说明 |
|------|----------|------|------|
| `https://accounts.hcaptcha.com/demo` | `10000000-ffff-ffff-ffff-000000000001` | ⚠️ 依赖挑战类型 | 无头浏览器可能仍会收到图像挑战 |
### 无头浏览器说明
即使使用测试密钥(`10000000-ffff-ffff-ffff-000000000001`),hCaptcha 在检测到无头浏览器时仍可能弹出图像挑战。求解器在点击复选框后最多等待 30 秒以获取令牌。
对于无头环境,推荐使用 `HCaptchaClassification` 任务类型求解图像网格挑战,然后注入令牌。
## 注意事项
- hCaptcha 挑战通常比 reCAPTCHA v2 需要更多时间,求解器点击后最多等待 30 秒。
- 测试密钥(`10000000-ffff-ffff-ffff-000000000001`)在低风险环境下会立即通过。