Datadome 协议接口
ℹ️ 该任务类型必须传入代理proxy信息,暂不支持proxyless
⚠️ 通过 createTask 创建任务, 然后通过 getTaskResult 获取识别结果
任务类型type
如下
DataDomeSliderTask
必须传入代理
创建任务
通过 createTask 创建任务
注意 你一定需要观察 captchaUrl
中的 t
参数是否等于 fe
,如果 t=bv
表示你的ip直接被禁止,你必须更换IP
参数结构
属性 | 类型 | Required | 说明 |
---|---|---|---|
type | String | Yes | DataDomeSliderTask |
websiteURL | String | Yes | 目标网页的地址。可以在网站上的任何地方,甚至在会员区域。 |
captchaUrl | String | Yes | 验证码Url,该URL中必须包含t=fe , 如果 t=bv 表示你的IP已经被禁止 |
proxy | String | No | 学习如何使用代理 |
userAgent | String | No | userAgent头 |
请求示例
text
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "DatadomeSliderTask",
"websiteURL": "https://bck.websiteurl.com/registry",
"captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
"proxy": "socks5:158.120.100.23:334:user:pass",
"userAgent": "MODERN_USER_AGENT_HERE"
}
}
响应示例
json
{
"errorId": 0,
"status": "idle",
// 请记录此ID
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
获取结果
使用 getTaskResult 方法获取识别结果
根据系统负载,您将在 1s
到 20s
的时间间隔内得到结果
请求示例
text
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
json
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
响应示例
json
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
//我们会返回服务端使用的userAgent
"userAgent": "",
"cookie": "datadome=yzj_BK...S0; Max-Age=31536000; Domain=.hermes.com; Path=/; Secure; SameSite=Lax"
},
"status": "ready"
}
使用 SDK 请求
python
#pip install --upgrade capsolver
#export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve(
"type": "DatadomeSliderTask",
"websiteURL": "https://bck.websiteurl.com/registry",
"captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
"proxy": "socks5:158.120.100.23:334:user:pass",
"userAgent": "MODERN_USER_AGENT_HERE"
)
golang
package main
import (
"fmt"
capsolver_go "github.com/capsolver/capsolver-go"
"log"
)
func main() {
// first you need to install sdk
//go get github.com/capsolver/capsolver-go
//export CAPSOLVER_API_KEY='...' or
//capSolver := CapSolver{apiKey:"..."}
capSolver := capsolver_go.CapSolver{}
solution, err := capSolver.Solve(map[string]any{
"type": "DatadomeSliderTask",
"websiteURL": "https://bck.websiteurl.com/registry",
"captchaUrl": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAAAAMA1QGvUmJwyYoAwpyjNg%3D%3D&hash=789361B674144528D0B7EE76B35826&cid=6QAEcL8coBYTi9tYLmjCdyKmNNyHz1xwM2tMHHGVd_Rxr6FsWrb7H~a04csMptCPYfQ25CBDmaOZpdDa4qwAigFnsrzbCkVkoaBIXVAwHsjXJaKYXsTpkBPtqJfLMGN&t=fe&referer=https%3A%2F%2bck.websiteurl.com%2Fclient%2Fregister%2FYM4HJV%3Flang%3Den&s=40070&e=3e531bd3b30650f2e810ac72cd80adb5eaa68d2720e804314d122fa9e84ac25d",
"proxy": "socks5:158.120.100.23:334:user:pass",
"userAgent": "MODERN_USER_AGENT_HERE",
})
if err != nil {
log.Fatal(err)
return
}
fmt.Println(solution)
}