ReCaptchaV2 协议接口
TIP
通过 createTask 创建任务, 然后通过 getTaskResult 获取识别结果
任务类型type
如下
ReCaptchaV2Task
必须传入代理ReCaptchaV2EnterpriseTask
必须传入代理ReCaptchaV2TaskProxyLess
无需代理或已内置代理ReCaptchaV2EnterpriseTaskProxyLess
无需代理或已内置代理
创建任务
通过 createTask 创建任务
在创建任务前,你可以学习下面的内容
如果获得了无效的token,你可以学习下面的内容
参数结构
Properties | Type | Required | Description |
---|---|---|---|
type | String | Required | ReCaptchaV2Task ReCaptchaV2TaskProxyLess |
websiteURL | String | Required | reCaptcha 网页地址,一般是固定值 |
websiteKey | String | Required | reCaptcha 网站密钥,固定值 |
proxy | String | Optional | 学习如何使用代理 |
pageAction | String | Optional | 对于 v2 站点:在 anchor 请求中如果有 sa 参数,则传递该参数 对于 v3 站点:搜索 grecaptcha.execute 可找到 action 参数 |
enterprisePayload | Object | Optional | 企业版搜索 grecaptcha.enterprise.render ,传递其中的 s 参数 |
isInvisible | Bool | Optional | 没有“我不是机器人”复选框,但还是会出现挑战的情况下,请传递 true,通常在 v2 隐形模式下需要 |
isSession | Bool | Optional | session 模式,启用后会返回一个 recaptcha-ca-t 值,作为 cookie 使用,通常在 v3 中出现注:有的网站需要 recaptcha-ca-e 值,通常在 v2 中出现,若有该值会自动返回,不需要其他额外参数设置 |
apiDomain | String | Optional | 加载验证码的域名,通常情况下不需要传递此参数 • http://www.google.com/ • http://www.recaptcha.net/ |
WARNING
如果您不清楚应该怎么传递参数,请参考我们的博客使用 capsolver 扩展自动获取参数。
如果您发现得到的 token 评分较低,请将扩展获取的 json 数据发送给客服进行优化。
请求示例
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV2Task",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN" // Optional
},
"isInvisible": false, // Optional
"pageAction": "submit", // Optional
"apiDomain": "", // Optional
"proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass, Optional
}
}
响应示例
{
"errorId": 0,
"errorCode": "",
"errorDescription": "",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" // 请记录此 ID
}
获取结果
使用 getTaskResult 方法获取识别结果
根据系统负载,您将在 1s
到 20s
的时间间隔内得到结果
请求示例
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
响应示例
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"userAgent": "xxx", // User-Agent
"createTime": 1671615324290, // token 生成时间
"gRecaptchaResponse": "3AHJ......", // 响应 token
"recaptcha-ca-t": "AbEM......", // 部分 v3 网站有 session 模式,启用 isSession 后会返回此参数,作为 cookie 使用
"recaptcha-ca-e": "Abp_......" // 部分 v2 网站有该参数,作为 cookie 使用,若有该值会自动返回
},
"status": "ready"
}
使用 SDK 请求
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
})