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()