Python Rucaptcha



The library is intended for software developers and serves to facilitate the work with the RuCaptcha service API.

There are examples of working with the library.

Python version 3.6+ is used.

How to install?

pip install python-rucaptcha

git clone
cd python-rucaptcha
python install

A short example:
import requests
from python_rucaptcha import ImageCaptcha, RuCaptchaControl, CallbackClient
# Enter the key from the RuCaptcha service from your account
# Link to images for decryption
image_link = ""

# to get started, you need to register an IP / URL (done from the same IP that you register):
RuCaptchaControl.RuCaptchaControl (rucaptcha_key = RUCAPTCHA_KEY) .additional_methods (action = 'add_pingback', addr = 'http: //')
# checking registered addresses
answer = RuCaptchaControl.RuCaptchaControl (rucaptcha_key = RUCAPTCHA_KEY) .additional_methods (action = 'get_pingback', json = 1)
print (answer)
# you need to come up with a complex name for the queue (15+ characters will do) to get the results of solving the captcha
queue_name = 'ba86e77f9007_andrei_drang_7436e744_cute_queue'
# register the queue on the callback server
answer = (f'http: // 8001 / register_key ', json = {' key ': queue_name,' vhost ':' rucaptcha_vhost '})
print (answer.text)
# create a task in the RuCaptcha service and specify the `pingback` parameter
task_creation_answer = ImageCaptcha.ImageCaptcha (rucaptcha_key = RUCAPTCHA_KEY,
                                                     pingback = f' 8001 / rucaptcha / image_captcha / {queue_name} ',
                                                    ) .captcha_handler (captcha_link = image_link)
print (task_creation_answer)
# Two options for getting a solution: cache (the result is stored for 1 hour) and the rabbitmq queue (the result is deleted after the first read)
# connect to the server and wait for the solution of the captcha from the cache
callback_cache_response = CallbackClient.CallbackClient (task_id = task_creation_answer.get ('id')). captcha_handler ()
# connect to the server and wait for the solution of the captcha from the RabbitMQ queue
callback_queue_response = CallbackClient.CallbackClient (task_id = task_creation_answer.get ('id'), queue_name = queue_name, call_type = 'queue'). captcha_handler ()
print (callback_cache_response)
print (callback_queue_response)