def captcha_solve(captcha_link): from python_rucaptcha import ImageCaptcha,RuCaptchaControl answer = RuCaptchaControl.RuCaptchaControl( rucaptcha_key=RUCAPTCHA_KEY ).additional_methods(action="getbalance") print("Checking Rucaptcha balance: ", answer['serverAnswer']) image_link = captcha_link user_answer = ImageCaptcha.ImageCaptcha(rucaptcha_key=RUCAPTCHA_KEY).captcha_handler(captcha_link=image_link) if not user_answer['error']: # решение капчи # print(user_answer['captchaSolve']) # print(user_answer['taskId']) return user_answer['captchaSolve'] elif user_answer['error']: # Тело ошибки, если есть print(user_answer['errorBody']['text']) print(user_answer['errorBody']['id']) return None
if __name__ == '__main__': loop = asyncio.new_event_loop() loop.run_until_complete(run()) loop.close() """ Callback пример """ # нужно передать IP/URL ранее зарегистрированного сервера server_ip = '85.255.8.26' # и по желанию - порт на сервере который слушает ваше веб-приложение server_port = 8001 # регистрация нового домена для callback/pingback answer = RuCaptchaControl.RuCaptchaControl( rucaptcha_key=RUCAPTCHA_KEY).additional_methods( action='add_pingback', addr=f'http://{server_ip}:{server_port}/', json=1) print(answer) # нужно придумать ЛЮБОЕ сложное название очереди(15+ знаков подойдёт) queue_name = 'ba86e77f9007_andrei_drang_7436e7_key_captcha_442674_cute_queue' # регистрируем очередь на callback сервере answer = requests.post(f'http://{server_ip}:{server_port}/register_key', json={ 'key': queue_name, 'vhost': 'rucaptcha_vhost' }) # если очередь зарегистрирована if answer.text == 'OK':
from python_rucaptcha import RuCaptchaControl """ Этот пример показывает работу модуля управления аккаунтом RuCaptcha. Присутствует возможность получить информацию о балансе средств и отправить жалобу на неверно решённую капчу. """ # Введите ключ от рукапчи из своего аккаунта RUCAPTCHA_KEY = "" # пример получения информации о балансе answer = RuCaptchaControl.RuCaptchaControl( rucaptcha_key=RUCAPTCHA_KEY).additional_methods(action='getbalance') """ answer - это JSON строка с соответствующими полями: serverAnswer - ответ сервера при использовании RuCaptchaControl(баланс/жалобы и т.д.) taskId - находится Id задачи на решение капчи, можно использовать при жалобах и прочем, error - False - если всё хорошо, True - если есть ошибка, errorBody - полная информация об ошибке: { text - Развернётое пояснение ошибки id - уникальный номер ошибка в ЭТОЙ бибилотеке } """ if not answer['error']: print("Your balance is: ", answer['serverAnswer'], " rub.") elif answer['error']: # Тело ошибки, если есть print(answer['errorBody'])
# решение капчи # print(user_answer['captchaSolve']) # user_answer['taskId'] apivk1 = req.url_check(login, password, idstr, user_answer['captchaSolve']) if('access_token' in apivk1): save.write(apivk1['access_token'] + '\r\n') valid += 1 else: if(apivk1['error'] == 'need_captcha'): err += 1 elif user_answer['errorId'] == 1: # Тело ошибки, если есть print(user_answer['taskId']) print(user_answer['errorBody']) time.sleep(5) answer = RuCaptchaControl.RuCaptchaControl(rucaptcha_key = RUCAPTCHA_KEY).additional_methods(action = 'get', id = user_answer['taskId']) apivk2 = req.url_check(login, password, idstr, answer['serverAnswer']) if('access_token' in apivk2): save.write(apivk2['access_token'] + '\r\n') valid += 1 else: if(apivk2['error'] == 'need_captcha'): err += 1 os.remove(captcha_file) req.clearConsole() i += 1 # Get balance answer = RuCaptchaControl.RuCaptchaControl(rucaptcha_key = RUCAPTCHA_KEY).additional_methods(action = 'getbalance') print("Проверено: {}/{}".format(i, len(read_data))) print("Удачных: {}".format(valid)) print("Баланс: {} рублей".format(answer['serverAnswer']))
import asyncio from python_rucaptcha import RuCaptchaControl, ImageCaptcha """ Этот пример показывает работу модуля управления аккаунтом RuCaptcha. Присутствует возможность получить информацию о балансе средств и отправить жалобу на неверно решённую капчу. """ # Введите ключ от рукапчи из своего аккаунта RUCAPTCHA_KEY = "ba86e77f9007a106c2eb2d7436e74440" # пример получения информации о балансе answer = RuCaptchaControl.RuCaptchaControl( rucaptcha_key=RUCAPTCHA_KEY).additional_methods(action='getbalance') """ answer - это JSON строка с соответствующими полями: serverAnswer - ответ сервера при использовании RuCaptchaControl(баланс/жалобы и т.д.) taskId - находится Id задачи на решение капчи, можно использовать при жалобах и прочем, error - False - если всё хорошо, True - если есть ошибка, errorBody - полная информация об ошибке: { text - Развернётое пояснение ошибки id - уникальный номер ошибка в ЭТОЙ бибилотеке } """ if not answer['error']: print("Your balance is: ", answer['serverAnswer'], " rub.") elif answer['error']: # Тело ошибки, если есть
import asyncio from python_rucaptcha import RuCaptchaControl, ImageCaptcha """ Этот пример показывает работу модуля управления аккаунтом RuCaptcha. Присутствует возможность получить информацию о балансе средств и отправить жалобу на неверно решённую капчу. """ # Введите ключ от рукапчи из своего аккаунта RUCAPTCHA_KEY = "ba86e77f9007a106c2eb2d7436e74440" # пример получения информации о балансе answer = RuCaptchaControl.RuCaptchaControl( rucaptcha_key=RUCAPTCHA_KEY).additional_methods(action="getbalance") """ answer - это JSON строка с соответствующими полями: serverAnswer - ответ сервера при использовании RuCaptchaControl(баланс/жалобы и т.д.) taskId - находится Id задачи на решение капчи, можно использовать при жалобах и прочем, error - False - если всё хорошо, True - если есть ошибка, errorBody - полная информация об ошибке: { text - Развернётое пояснение ошибки id - уникальный номер ошибка в ЭТОЙ бибилотеке } """ if not answer["error"]: print("Your balance is: ", answer["serverAnswer"], " rub.") elif answer["error"]: # Тело ошибки, если есть