| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- """
- @ Author: Mr.Hat
- @ Date: 2024/3/30 14:05
- @ Description:
- @ History:
- """
- import asyncio
- import captchatools
- from data.config import (
- TWO_CAPTCHA_API_KEY,
- ANTICAPTCHA_API_KEY,
- CAPMONSTER_API_KEY,
- CAPSOLVER_API_KEY,
- CAPTCHAAI_API_KEY,
- CAPTCHA_PARAMS
- )
- class CaptchaService:
- def __init__(self):
- self.SERVICE_API_MAP = {
- "2captcha": TWO_CAPTCHA_API_KEY,
- "anticaptcha": ANTICAPTCHA_API_KEY,
- "capmonster": CAPMONSTER_API_KEY,
- "capsolver": CAPSOLVER_API_KEY,
- "captchaai": CAPTCHAAI_API_KEY,
- }
- def get_captcha_token(self):
- captcha_config = self._parse_captcha_type()
- solver = captchatools.new_harvester(**captcha_config, **CAPTCHA_PARAMS)
- return solver.get_token()
- def _parse_captcha_type(self):
- for service, api_key in self.SERVICE_API_MAP.items():
- if api_key:
- return {"solving_site": service, "api_key": api_key}
- raise ValueError("No valid captcha solving service API key found")
- async def get_captcha_token_async(self):
- return await asyncio.to_thread(self.get_captcha_token)
|