GridCaptcha

To import this module:

from python_rucaptcha.grid_captcha import GridCaptcha
class python_rucaptcha.grid_captcha.GridCaptcha(comment: str = 'Check elements at Grid', save_format: str | SaveFormatsEnm = SaveFormatsEnm.TEMP, img_clearing: bool = True, img_path: str = 'PythonRuCaptchaBoundingBox', *args, **kwargs)
__init__(comment: str = 'Check elements at Grid', save_format: str | SaveFormatsEnm = SaveFormatsEnm.TEMP, img_clearing: bool = True, img_path: str = 'PythonRuCaptchaBoundingBox', *args, **kwargs)

The class is used to work with Bounding Box.

Parameters:
  • rucaptcha_key – User API key

  • save_format (str | SaveFormatsEnm) – The format in which the image will be saved, or as a temporary file - ‘temp’, or as a regular image to a folder created by the library - ‘const’.

  • img_clearing (bool) – True - delete file after solution, False - don’t delete file after solution

  • img_path (str) – Folder to save captcha images

  • kwargs – Additional not required params for this captcha type

Examples

>>> GridCaptcha(rucaptcha_key="aa9011f31111181111168611f1151122",
...             ).captcha_handler(captcha_link="https://rucaptcha.com/dist/web/99581b9d446a509a0a01954438a5e36a.jpg")
{
   "errorId":0,
   "status":"ready",
   "solution":{
        "click":[
            1, 5, 9
        ],
   },
   "cost":0.033,
   "ip":"46.53.241.91",
   "createTime":1696730723,
   "endTime":1696730723,
   "solveCount":1,
   "taskId":74708110322
}
>>> GridCaptcha(rucaptcha_key="aa9011f31111181111168611f1151122",
...             ).captcha_handler(captcha_file="src/examples/grid.png")
{
   "errorId":0,
   "status":"ready",
   "solution":{
        "click":[
            1, 5, 9
        ],
   },
   "cost":0.033,
   "ip":"46.53.241.91",
   "createTime":1696730723,
   "endTime":1696730723,
   "solveCount":1,
   "taskId":74708110322
}
>>> with open("src/examples/grid.png", "rb") as f:
...     file_data = f.read()
>>> GridCaptcha(rucaptcha_key="aa9011f31111181111168611f1151122"
...             ).captcha_handler(captcha_base64=file_data)
{
   "errorId":0,
   "status":"ready",
   "solution":{
        "click":[
            1, 5, 9
        ],
   },
   "cost":0.033,
   "ip":"46.53.241.91",
   "createTime":1696730723,
   "endTime":1696730723,
   "solveCount":1,
   "taskId":74708110322
}
>>> await GridCaptcha(rucaptcha_key="aa9011f31111181111168611f1151122",
...             ).aio_captcha_handler(captcha_link="https://rucaptcha.com/dist/web/99581b9d446a509a0a01954438a5e36a.jpg")
{
   "errorId":0,
   "status":"ready",
   "solution":{
        "click":[
            1, 5, 9
        ],
   },
   "cost":0.033,
   "ip":"46.53.241.91",
   "createTime":1696730723,
   "endTime":1696730723,
   "solveCount":1,
   "taskId":74708110322
}
>>> await GridCaptcha(rucaptcha_key="aa9011f31111181111168611f1151122",
...             ).aio_captcha_handler(captcha_file="src/examples/grid.png")
{
   "errorId":0,
   "status":"ready",
   "solution":{
        "click":[
            1, 5, 9
        ],
   },
   "cost":0.033,
   "ip":"46.53.241.91",
   "createTime":1696730723,
   "endTime":1696730723,
   "solveCount":1,
   "taskId":74708110322
}

Death Captcha

>>> GridCaptcha(rucaptcha_key="some_username:some_password",
...             service_type="deathbycaptcha"
...             ).captcha_handler(captcha_file="src/examples/grid.jpg")
{
   "errorId":0,
   "status":"ready",
   "solution":{
        "click":[
            1, 5, 9
        ],
   },
   "cost":0.033,
   "ip":"46.53.241.91",
   "createTime":1696730723,
   "endTime":1696730723,
   "solveCount":1,
   "taskId":74708110322
}
>>> await GridCaptcha(rucaptcha_key="some_username:some_password",
...             service_type="deathbycaptcha"
...             ).aio_captcha_handler(captcha_link="https://rucaptcha.com/dist/web/99581b9d446a509a0a01954438a5e36a.jpg")
{
   "errorId":0,
   "status":"ready",
   "solution":{
        "click":[
            1, 5, 9
        ],
   },
   "cost":0.033,
   "ip":"46.53.241.91",
   "createTime":1696730723,
   "endTime":1696730723,
   "solveCount":1,
   "taskId":74708110322
}
>>> with open("src/examples/grid.png", "rb") as f:
...     file_data = f.read()
>>> await GridCaptcha(rucaptcha_key="aa9011f31111181111168611f1151122"
...             ).aio_captcha_handler(captcha_base64=file_data)
{
   "errorId":0,
   "status":"ready",
   "solution":{
        "click":[
            1, 5, 9
        ],
   },
   "cost":0.033,
   "ip":"46.53.241.91",
   "createTime":1696730723,
   "endTime":1696730723,
   "solveCount":1,
   "taskId":74708110322
}
Returns:

Dict with full server response

captcha_handler(captcha_link: str | None = None, captcha_file: str | None = None, captcha_base64: bytes | None = None, **kwargs) dict

Sync solving method

Parameters:
  • captcha_link (str | None) – Captcha image URL

  • captcha_file (str | None) – Captcha image file path

  • captcha_base64 (bytes | None) – Captcha image BASE64 info

  • kwargs – additional params for requests library

Returns:

Dict with full server response

Return type:

dict

Notes

Check class docstirng for more info

async aio_captcha_handler(captcha_link: str | None = None, captcha_file: str | None = None, captcha_base64: bytes | None = None, **kwargs) dict

Async solving method

Parameters:
  • captcha_link (str | None) – Captcha image URL

  • captcha_file (str | None) – Captcha image file path

  • captcha_base64 (bytes | None) – Captcha image BASE64 info

  • kwargs – additional params for aiohttp library

Returns:

Dict with full server response

Return type:

dict

Notes

Check class docstirng for more info