• EN
    RU

rucaptcha/recognize_geetest

recognize_geetest(pageurl, gt, challenge, api_server="", proxy="", proxytype=""); - данная функция позволяет распознать geetest капчу.
Функция на вход принимает параметры:
  • pageurl - url страницы с капчей.
  • gt - ID капчи.
  • challenge - номер вызова, уникальный идентификатор процесса проверки.
  • api_server - параметры сервера API.
  • proxy - параметры proxy.
  • proxytype - тип proxy.

  • После отработки функция возвращает результат своей работы в робот:
    • Результат распознования
    • Код ошибки




    Пример использования recognize_geetest (Python):

    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
     
    xhe_host = "127.0.0.1:7011"
    from xweb_human_emulator import *
     
    # разобрать строку по префиксам
    def get_string(str1, pr1, pr2, ind_st = 0):
    	#получаем стартовый индекс
    	ind1 = str1.find(pr1, ind_st)
    	if ind1 == -1:
    	   return ""
     
    	ind1_1 = ind1 + len(pr1)
    	#получаем финишный индекс
    	ind2 = str1.find(pr2, ind1_1)
    	if ind2 == -1:
    		return ""
     
    	# получим результат s = s[ beginning : beginning + LENGTH]
    	sres = str1[ind1 + len(pr1):ind1 + len(pr1)+ind2 - ind1_1]
    	return sres.strip() 
     
    # начало
    echo("<hr><font color=blue>rucaptcha.xxxxxxxxx</font><hr>")
     
    # API ключ
    rucaptcha.api_key="448b2d538fef6c236092492a947af85b"
     
    # 1 
    echo("1. Перейдем на полигон для тестирования geetest капчи: ")
    echo(browser.navigate("https://www.geetest.com/en"),"<br>")
     
     
    # перейдём на пример капчи
    anchor.click_by_inner_text("Demo")
    sleep(1)
    li.set_focus_by_number(10)
     
    # 2 
    echo( "2. Распознать geetest капчу используя сервис rucaptcha.com : <br>")
     
    # данные для отправки на сайт
    api_server="api.geetest.com"
    t=round(time.time())
    echo(str(t)+"<br>")
     
     
    # получить gt и challenge для отправки на сервис
    #res =  requests.get('https:#www.geetest.com/demo/gt/register-enFullpage-official?t='+t)  
    res = '{"success":1,"challenge":"2190803726550c5d316c7289ed5ccb80","gt":"7b8ee24aa22172edf436fbaf851ff96c","new_captcha":true}'#browser.send_get_query("https://www.geetest.com/demo/gt/register-enFullpage-official",'t='+str(t))
    echo ("answer:"+res+"<br>")
     
    # разбеёрм полученные данные из ответа
    gt = get_string(res, '"gt":"', '",')
    challenge = get_string(res, '"challenge":"', '",')
    echo("gt="+gt+"<br>challenge="+challenge+"<br>")
     
    # отправляем запрос на сервис
    result = rucaptcha.recognize_geetest("https://www.geetest.com/en", gt, challenge, api_server)
     
    # разбираем ответ от сервиса
    geetest_challenge=get_string(result, 'geetest_challenge":"', '",')
    geetest_validate=get_string(result, 'geetest_validate":"', '",')
    geetest_seccode=get_string(result, 'geetest_seccode":"', '",')
     
    # полученный результат вводим в поля 
    hiddeninput.set_value_by_name("geetest_challenge", geetest_challenge)
    hiddeninput.set_value_by_name("geetest_validate", geetest_validate)
    hiddeninput.set_value_by_name("geetest_seccode", geetest_seccode)
     
    # нажимем на кнопку Click to verify
    span.click_by_inner_text("Click to verify")
     
    # конец
    echo("<hr><br>")
     
    # Quit
    app.quit()