Этот пример наглядно показывает, как вы можете автоматизировать решение капчи GeeTest в JavaScript. В примере капча решается на демо странице, но принцип обхода капчи везде одинаков.
git clone https://github.com/dzmitry-duboyski/GeeTest-demo.git
npm install
npm run start
Платформа безопасности GeeTest используется на многих популярных сайтах. В этом руководстве описанно как успешно пройти проверку безопастности GeeTest используя сервис 2Captcha.com и Puppeteer. Для успешного прохождения проверки необходимо иметь аккаунт в сервисе 2Captcha.com.
В этом примере описано как решить капчу GeeTest на демо странице https://2captcha.com/demo/geetest.
-
Найти параметры капчи
gt
,challenge
,api_server
:1.1. Найти значение
gt
можно в коде страницы. Скриншот:1.2 Найти значение
challenge
немного сложнее. Для этого необходимо найти запрос, который делает капча на этой странице, этот запрос должен содержать значениеchallenge
.Ответ на запрос будет в следующем формате:
{"success":1,"challenge":"21aaa1c62221631516179b492b9e80cc","gt":"81388ea1fc187e0c335c0a8907ff2625"}
. Из этого ответа необходимо взять значениеchallenge
.Если рассматривать пример с капчей на странице https://2captcha.com/demo/geetest, то в этом случае это будет запрос к https://2captcha.com/api/v1/captcha-demo/gee-test/. Ответ на этот запрос содержит необходимый
challenge
. Ответ:{"success":1,"challenge":"21aaa1c62221631516179b492b9e80cc","gt":"81388ea1fc187e0c335c0a8907ff2625"}
.Подробнее про challenge можно почитать тут.
-
Отправка капчи в API.
Для решения капчи, необходимо отправить в API найденные параметры капчи:
"key":"your_api_key",
"method":"geetest"
"pageurl":"https://2captcha.com/demo/geetest"
"gt": "81388ea1fc187e0c335c0a8907ff2625",
"challenge": "21aaa1c62221631516179b492b9e80cc"
- Получение решения капчи.
После успешного решения капчи, API вернет ответ с решением. Пример ответа с решением от API:
{
"status": 1,
"request": {
"geetest_challenge": "fd4847c8a368356a0e3a6636392c2854k9",
"geetest_validate": "4606cdf89c8c2e5a43c5a14fe475fc40",
"geetest_seccode": "4606cdf89c8c2e5a43c5a14fe475fc40|jordan"
}
}
- Применение решения.
Полученные значения необходмо вставить в соответствующие
html
элементы GeeTest капчи на странице.
Пример:
<div class="geetest_form">
<input type="hidden" name="geetest_challenge" value="fd4847c8a368356a0e3a6636392c2854k9">
<input type="hidden" name="geetest_validate" value="4606cdf89c8c2e5a43c5a14fe475fc40">
<input type="hidden" name="geetest_seccode" value="4606cdf89c8c2e5a43c5a14fe475fc40">
</div>
Готово. После этого можно переходить к выполнению действий на странице. В этом примере после этого происходит нажатие на кнопку "Проверить".
Код решения доступен в файле index.js
- Документация по отправке GeeTest.
- Демо страница c GeeTest с описанием решения.
- Подробнее о решении GeeTest