GeeTestTask: решение GeeTest
TIP
Создайте задачу с помощью метода createTask и получите результат с помощью метода getTaskResult.
Типы задач, которые мы поддерживаем:
GeeTestTask
- для этого типа задачи требуются ваши собственные прокси.GeeTestTaskProxyLess
- использует встроенный прокси-сервер.
ПОДДЕРЖИВАЕМЫЕ ТИПЫ КАПЧИ
Тип | Примечание | Состояние |
---|---|---|
slide | stable | |
click | stable |
Создание задачи
Создайте задачу с помощью метода createTask.
Структура объекта задачи
Свойства | Тип | Обязательно | Описание |
---|---|---|---|
type | String | Required | GeeTestTask GeeTestTaskProxyLess |
websiteURL | String | Required | Веб-адрес веб-сайта, использующего geetest, обычно это фиксированное значение. (Пример: https://geetest.com) |
gt | String | Required | Доменное поле gt. |
challenge | String | Required | Если вам нужно решить Geetest V3, вы должны использовать этот параметр, необходимо, если вам нужно решить GeetestV4 |
captchaId | String | Optional | Если вам нужно решить Geetest V4, вы должны использовать этот параметр, необходимо, если вам нужно решить GeetestV3 |
geetestApiServerSubdomain | String | Optional | Специальный субдомен API. |
proxy | String | Optional | Изучите Использование прокси |
Пример запроса
Пример запроса с использованием Geetest V3
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "ВАШ_API_KEY",
"task": {
"type":"GeeTestTaskProxyless", // Может использовать GeetestTaskProxyless или GeetestTask
"websiteURL":"http://mywebsite.com/geetest/test.php", // Обязательно
"gt":"874703612e5cd0d", // Обязательно
"challenge":"", // Обязательно
"geetestApiServerSubdomain":"", // Опционально
"proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass
"userAgent": "" // Опционально
}
}
Пример запроса с использованием Geetest V4
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey": "ВАШ_API_KEY",
"task": {
"type":"GeeTestTask", // Может использовать GeetestTaskProxyless или GeetestTask
"websiteURL":"http://mywebsite.com/geetest/test.php", // Обязательно
"captchaId": "", // Обязательно
"geetestApiServerSubdomain":"", // Опционально
"proxy":"" // Опционально, это требуется, если вы используете GeetestTask
}
}
Пример ответа
{
"errorId": 0,
"status": "idle",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" // запись taskId
}
Получение результата
Используйте метод getTaskResult для получения результата, в зависимости от загрузки системы, вы получите результат в интервале от 3
до 10
секунд.
Пример запроса
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
{
"clientKey":"ВАШ_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
Пример ответа
Пример ответа с использованием GeetestV3
{
"errorId": 0,
"solution": {
"challenge": "",
"validate": ""
},
"status": "ready"
}
Пример ответа с использованием GeetestV4
{
"errorId": 0,
"taskId": "e0ecaaa8-06f6-41fd-a02e-a0c79b957b15",
"status": "ready",
"solution": {
"captcha_id": "",
"captcha_output": "",
"gen_time": "",
"lot_number": "",
"pass_token": "",
"risk_type": "slide"
}
}
Использование SDK
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
# v3
solution = capsolver.solve({
"type": "GeeTestTaskProxyLess",
"websiteURL": "http://mywebsite.com/geetest/test.php",
"gt": "874703612e5cd0d",
"challenge": "",
"geetestApiServerSubdomain": "",
})
# v4
solution = capsolver.solve({
"type": "GeeTestTaskProxyLess",
"websiteURL": "http://mywebsite.com/geetest/test.php",
"captchaId": "",
"geetestApiServerSubdomain": "",
})
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{}
// v3
solution, err := capSolver.Solve(map[string]any{
"type": "GeeTestTask", //GeeTestTask,GeeTestTaskProxyLess
"websiteURL": "http://mywebsite.com/geetest/test.php",
"gt": "874703612e5cd0d",
"challenge": "",
"geetestApiServerSubdomain": "",
"proxy": "",
})
if err != nil {
log.Fatal(err)
return
}
fmt.Println(solution)
//v4
solution, err = capSolver.Solve(
map[string]any{
"type": "GeeTestTask",
"websiteURL": "http://mywebsite.com/geetest/test.php",
"websiteKey": "",
"cptchaId": "12310989asdf",
"geetestApiServerSubdomain": "",
})
if err != nil {
log.Fatal(err)
}
}
Замечания
- Пожалуйста, не копируйте параметры запроса непосредственно из инструмента разработ
чика браузера, получите GT и challenge из запроса.
Малое количество ошибок при повторном получении параметров верификационного кода можно повторно отправить.
Параметры верификационного кода можно отправить на идентификацию только один раз, не повторяйте отправку тех же параметров на идентификацию, необходимо повторно инициализировать получение.
Примечание: Если вы не можете пройти проверку на сайте, это может быть связано с проблемами кодирования, в таком случае символ CAPTCHA
=
заменяется на% 3D, в других случаях кодирование не требуется, обратите внимание на это.Параметры, такие как тестовый сервер, можно запросить в документации Geetest.