recognize_click_captcha($filename,$textinstructions); - распознать капчу где надо кликать куда либо (кликовая капча). Подробнее можно узнать здесь
Для ее работы используются следующие поля объекта :$this->api_key - API ключ
Функция на вход принимает параметры:
$filename – путь к картинке капчи $textinstructions – Текст того, что нужно выбрать на картинке в кодировке UTF-8. Данный параметр не обязателен, если по картинке понятно куда нужно кликнуть - можно не присылать
После отработки функция возвращает результат своей работы в робот :
Результат распознования – строка капчи в виде OK|coordinate:x=39,y=59;x=252,y=72 ,где - x и y координаты щелчов капчи или код-строка с ответом об ошибке:
ERROR_KEY_DOES_NOT_EXIST - вы использовали неверный captcha ключ в запросе ERROR_WRONG_ID_FORMAT - некорректный идентификатор капчи, принимаются только цифры ERROR_CAPTCHA_UNSOLVABLE - капчу не смогли разгадать 5 разных работников
Пример использования recognize_click_captcha (Python):
# Additional paths import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:7013" from xweb_human_emulator import * # начало echo("<hr><font color=blue>rucaptcha.xxxxxxxxx</font><hr>") # API ключ rucaptcha.api_key="448b2d538fef6c236092492a947af85b" # 1 echo("1. Перейдем на полигон : ") echo(browser.navigate("https://www.google.com/recaptcha/api2/demo"),"<br>") # 2 echo("2. Нажмем я не робот : ") while not div.get_by_attribute("class","recaptcha-checkbox-checkmark",false,0).is_visibled(): sleep(1) check=div.get_by_attribute("class","recaptcha-checkbox-checkmark",false,0).send_mouse_click(4,4) echo(check,"\n") # 3 echo("3. Сохраним картинку и вопрос :") while not image.get_by_src("www.google.com/recaptcha/api2/payload",false,1).is_visibled(): sleep(1) sleep(3) echo(image.screenshot_by_src("test\\tmp.jpeg","www.google.com/recaptcha/api2/payload",false,1)," ") # сохраним текст desc=div.get_inner_text_by_attribute("class","imageselect-desc",false,1) desc = desc.split("\n") description=desc[0]+" "+desc[1]; echo(description,"<br>") # распознаем капчу - как ту где нужно сделать клики solution=rucaptcha.recognize_click_captcha("test\\tmp.jpeg",description) # 5 coordinates:x=186,y=64;x=313,y=72;x=316,y=198 echo("5. Кликнем по полученным координатам : \n\n") if solution.find("coordinates:")!=-1: solution=solution.replace("coordinates:","") solution=solution.replace(";",",") coords=solution.split(",") img = image.get_by_src("www.google.com/recaptcha/api2/payload",false,1) img .focus() for i in range(0,len(coords),2): x=coords[i].replace("x=","",) y=coords[i+1].replace("y=","") echo("click at ("+x+" "+y+") : на картинке капчи : ") echo(image.get_by_src("recaptcha/api2/payload",false,1).send_mouse_move(x,y)," ") sleep(0.05) echo(image.get_by_src("recaptcha/api2/payload",false,1).send_mouse_click(x,y),"\n") #usleep(mt_rand(300000,1000000))) echo("\n") # конец echo("<hr><br>") # Quit app.quit()