Skip to content

spacecase123/aio_anticaptcha

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-time captcha-to-text decodings for asyncio

image

image

image

API documentation

Installation

You can install it using Pip:

pip install aio_anticaptcha

If you want the latest development version, you can install it from source:

git clone git@github.com:nibrag/aio_anticaptcha.git
cd aio_anticaptcha
python setup.py install

Requirements:

python 3.4+
aiohttp

Usage

With context manager

import asyncio
from aio_anticaptcha import AntiCaptcha, ServiceError

async def run(loop):
    try:
        with AntiCaptcha('API-KEY', loop=loop) as ac:
            # io.IOBase
            fh = open('captcha.jpg')
            resolved, captcha_id = await ac.resolve(fh)

            # or bytes, bytearray
            bytes_buff = open('captcha.jpg', 'rb').read()
            resolved, captcha_id = await ac.resolved(bytes_buff)
    except ZeroBalanceError:
        print('Zero balance')
    except UserKeyError:
        print('Invalid api key...')
    except ServiceError as e:
        print('Something else', str(e))

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run(loop))
    loop.close()

Without context manager

import asyncio
from aio_anticaptcha import AntiCaptcha, ServiceError

async def run(loop):
    ac = AntiCaptcha('API-KEY', loop=loop)
    try:
        # io.IOBase
        resolved, captcha_id = await ac.resolve(open('captcha.jpg'))

        # or bytes, bytearray
        bytes_buff = open('captcha.jpg', 'rb').read()
        resolved, captcha_id = await ac.resolved(bytes_buff)
    except ServiceError as e:
        print(e)
    finally:
        # do'nt forget call close method
        ac.close()

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run(loop))
    loop.close()

If you wish to complain about a mismatch results, use abuse method:

import asyncio
from aio_anticaptcha import AntiCaptcha

async def run(loop):
    with AntiCaptcha('API-KEY', loop=loop) as ac:
        resolved, captcha_id = await ac.resolve(open('captcha.jpg'))
        await ac.abuse(captcha_id)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run(loop))
    loop.close()

After all manipulations, you can get your account balance:

import asyncio
from aio_anticaptcha import AntiCaptcha

async def run(loop):
    with AntiCaptcha('API-KEY', loop=loop) as ac:
        balance = await ac.get_balance()

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run(loop))
    loop.close()

Additional options for sending Captcha:

Read documentation about all available options: https://anti-captcha.com/apidoc

import asyncio
from aio_anticaptcha import AntiCaptcha

async def run(loop):
    with AntiCaptcha('API-KEY', loop=loop) as ac:
        resolved, captcha_id = await ac.resolve(open('captcha.jpg'), max_len=5, is_russian=True)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run(loop))
    loop.close()

Customizing anticaptcha service

import asyncio
from aio_anticaptcha import AntiCaptcha

async def run(loop):
    with AntiCaptcha('API-KEY', loop=loop, domain='antigate.com', port=80) as ac:
        balance = await ac.get_balance()

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run(loop))
    loop.close()

AntiGate.com supported

import asyncio
from aio_anticaptcha import AntiGate

async def run(loop):
    with AntiGate('API-KEY', loop=loop) as ag:
        balance = await ag.get_balance()

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run(loop))
    loop.close()

About

Real-time captcha-to-text decodings for asyncio

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%