GeeTest демо
Работает через JS-инициализацию initGeetest(). После прохождения возвращаются challenge-данные (challenge, validate, seccode), которые нужно отправить на сервер для валидации.
GeeTest — это тип капчи, при которой нужно перетащить кусочек пазла или выбрать изображения в заданном порядке, чтобы подтвердить, что действие выполняет человек. В итоге защита усложняет автоматизацию и значительно замедляет тестирование.
Как обходить GeeTest v4
Откройте консоль разработчика в вашем браузере и найдите элемент script который загружает GeeTest v4. Вам нужно получить значение параметра captcha_id из атрибута src.
Пример элемента script со страницы:
Отправьте captcha_id и pageurl на наш API.
Используя SDK (рекомендовано):
PHP
// https://github.com/solvercaptcha/solvecaptcha-php require(__DIR__ . '/../src/autoloader.php'); $solver = new \SolveCaptcha\SolveCaptcha('YOUR_API_KEY'); try { $result = $solver->geetest_v4([ 'captchaId' => '42977dc9-a215-4b09-aa14-945ef310d829', 'url' => 'https://solvecaptcha.com/demo/geetest-v4', ]); } catch (\Exception $e) { die($e->getMessage()); } die('Captcha solved: ' . $result->code);
Python
// https://github.com/solvercaptcha/solvecaptcha-python import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from solvecaptcha import SolveCaptcha api_key = os.getenv('APIKEY_solvecaptcha', 'YOUR_API_KEY') solver = SolveCaptcha(api_key) try: result = solver.geetest_v4(captcha_id='42977dc9-a215-4b09-aa14-945ef310d829', url='https://solvecaptcha.com/demo/geetest-v4') except Exception as e: sys.exit(e) else: sys.exit('solved: ' + str(result))
Java
// https://github.com/solvercaptcha/solvecaptcha-java package examples; import com.solvecaptcha.SolveCaptcha; import com.twocaptcha.captcha.GeeTestV4; public class GeeTestV4Example { public static void main(String[] args) { SolveCaptcha solver = new SolveCaptcha("YOUR_API_KEY"); GeeTestV4 captcha = new GeeTestV4(); captcha.setCaptchaId("42977dc9-a215-4b09-aa14-945ef310d829"); captcha.setUrl("https://solvecaptcha.com/demo/geetest-v4"); try { solver.solve(captcha); System.out.println("Captcha solved: " + captcha.getCode()); } catch (Exception e) { System.out.println("Error occurred: " + e.getMessage()); } } }
C#
// https://github.com/solvercaptcha/solvecaptcha-csharp using System; using System.Linq; using SolveCaptcha.Captcha; namespace SolveCaptcha.Examples { public class GeeTestV4Example { public void Main() { SolveCaptcha solver = new SolveCaptcha("YOUR_API_KEY"); GeeTestV4 captcha = new GeeTestV4(); captcha.SetCaptchaId("42977dc9-a215-4b09-aa14-945ef310d829"); captcha.SetUrl("https://solvecaptcha.com/demo/geetest-v4"); try { solver.Solve(captcha).Wait(); Console.WriteLine("Captcha solved: " + captcha.Code); } catch (AggregateException e) { Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message); } } } }
Go
// https://github.com/solvercaptcha/solvecaptcha-go package main import ( "fmt" "log" "github.com/solvecaptcha/solvecaptcha-go" ) func main() { client := apisolvecaptcha.NewClient("API_KEY") captcha := apisolvecaptcha.GeeTestV4{ CaptchaId: "42977dc9-a215-4b09-aa14-945ef310d829", Url: "https://solvecaptcha.com/demo/geetest-v4", } code, err := client.Solve(captcha.ToRequest()) if err != nil { log.Fatal(err); } fmt.Println("code "+code) }
Ruby
// https://github.com/solvercaptcha/solvecaptcha-ruby require 'api_solvecaptcha' client = Apisolvecaptcha.new("YOUR_API_KEY") result = client.geetest_v4({ captcha_id: '42977dc9-a215-4b09-aa14-945ef310d829', pageurl: 'https://solvecaptcha.com/demo/geetest-v4' })
Вручную:
Отправьте GET или POST запрос на наш API URL: https://solvecaptcha.com/in.php с параметрами из предыдущего шага.
Пример запроса:
https://solvecaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=geetest_v4&captcha_id=42977dc9-a215-4b09-aa14-945ef310d829&pageurl=http://solvecaptcha.com/demo/geetest-v4
Если вы отправили корректный запрос, сервер вернёт ID вашей капчи:
OK|2122988149
В противном случае сервер вернет ошибку. Через 15-20 секунд отправьте GET запрос чтобы получить результат:
GET https://solvecaptcha.com/res.php?key=YOUR_API_KEY&action=get&id=2122988149
Если ваша капча уже решена, сервер вернёт ответ на неё.
Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд. Если что-то пошло не так, сервер вернёт ошибку. Если капча уже решена, сервер вернёт ответ в формате JSON. Ответ содержит пять параметров: captcha_id, lot_number, pass_token, gen_time и captcha_output:
{ "captcha_id":"e392e1d7fd421dc63325744d5a2b9c73", "lot_number":"81c1ed8e35be4f67a00bf30b578e873a", "pass_token":"0b088f4a5c742a912c0cfa2f98cd8e4fb4bd6a0c9389272ea5beac93f632d4e9", "gen_time":"1687352616", "captcha_output":"fN36ufW6cQN-UMXTCVLbps254G0c0ZnGN5368O2A5_SaEYV9-8U0kUUT-Of9xrdwrV6xLd8XZLJSs6jiWdyZaVBcG0kIoKkl6Bq4IKg0mlQ-zmEgqq1jSwPIEl34mhUMCq3Xmfj2E-H4_kyh-UjSkPSMMTumf97Fe7PFhZJJfui-731XLBFR7WwJsY8S9BXNKtMzQDp7zUWDZjxGxWyC8n1G3Q5jk7oV4ez9zcmF6PymY_sHj3kFyCoa8q9o8FTp" }
Используйте значения, возвращаемые на вашем целевом веб-сайте, так же, как они используются после того, как вы решите captcha вручную. Это может быть форма с набором скрытых полей или JavaScript callback. Или вы можете просто создать HTTP-запросы с требуемыми данными. Нажмите кнопку "Проверить".