Skip to content

Latest commit

 

History

History
96 lines (70 loc) · 5.55 KB

README.ru.md

File metadata and controls

96 lines (70 loc) · 5.55 KB

English | 中国语文科 | Русский

geetest captcha

Решение капчи GeeTest в Puppeteer

Описание

Этот пример наглядно показывает, как вы можете автоматизировать решение капчи GeeTest в JavaScript. В примере капча решается на демо странице, но принцип обхода капчи везде одинаков.

Запуск проекта

Клонирование проекта:

git clone https://github.com/dzmitry-duboyski/GeeTest-demo.git

Установка зависимостей:

npm install

Укажите значение вашего APIKEY в файле .env.

Запуск проекта:

npm run start


Платформа безопасности GeeTest используется на многих популярных сайтах. В этом руководстве описанно как успешно пройти проверку безопастности GeeTest используя сервис 2Captcha.com и Puppeteer. Для успешного прохождения проверки необходимо иметь аккаунт в сервисе 2Captcha.com.

В этом примере описано как решить капчу GeeTest на демо странице https://2captcha.com/demo/geetest.

Описание алгоритма решения GeeTest:

  1. Найти параметры капчи gt, challenge, api_server:

    1.1. Найти значение gt можно в коде страницы. Скриншот: значение 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 в коде страницы

    Подробнее про challenge можно почитать тут.

  2. Отправка капчи в API.

Для решения капчи, необходимо отправить в API найденные параметры капчи:

"key":"your_api_key",
"method":"geetest"
"pageurl":"https://2captcha.com/demo/geetest"
"gt": "81388ea1fc187e0c335c0a8907ff2625",
"challenge": "21aaa1c62221631516179b492b9e80cc"
  1. Получение решения капчи.

После успешного решения капчи, API вернет ответ с решением. Пример ответа с решением от API:

{
   "status": 1,
   "request": {
       "geetest_challenge": "fd4847c8a368356a0e3a6636392c2854k9",
       "geetest_validate": "4606cdf89c8c2e5a43c5a14fe475fc40",
       "geetest_seccode": "4606cdf89c8c2e5a43c5a14fe475fc40|jordan"
   }
}
  1. Применение решения. Полученные значения необходмо вставить в соответствующие 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>

Скриншот: вставляем ответ в html элементы GeeTest капчи на странице

Готово. После этого можно переходить к выполнению действий на странице. В этом примере после этого происходит нажатие на кнопку "Проверить".

Код решения доступен в файле index.js

Дополнительная информация: