chore: добавлена возможность передавать локатор для выбора элемента сигнализирующего о странице антибот защиты
This commit is contained in:
1 parent
6124c604d9
commit
ce68d2727c
7 files changed
+36
-11
No files matched your search
+5
-1
@@ -26,6 +26,7 @@ class ChallengeInfo:
|
||||
provider: str # "cloudflare_turnstile", "datadome", "hcaptcha", "recaptcha_v2", ...
|
||||
success: bool = False
|
||||
success_locator: str | None = None # локатор на странице за защитой
|
||||
detect_locator: str | None = None # локатор на странице за защитой
|
||||
site_key: str | None = None # для стадии C, чтобы передать в 2captcha
|
||||
meta: dict | None = None # что-то специфичное для провайдера
|
||||
|
||||
@@ -55,6 +56,7 @@ class AntiBotProvider:
|
||||
_solver_cls: Type[Solver]
|
||||
_detector_cls: Type[Detector]
|
||||
_success_locator: str | None = None
|
||||
_detect_locator: str | None = None
|
||||
|
||||
def __init__(self):
|
||||
self.detector = self._detector_cls()
|
||||
@@ -64,6 +66,7 @@ class AntiBotProvider:
|
||||
stage = Stage.INTERSTITIAL,
|
||||
provider = self.provider,
|
||||
success_locator = self._success_locator,
|
||||
detect_locator = self._detect_locator,
|
||||
)
|
||||
# обновление info
|
||||
await self.detector.detect(page, info)
|
||||
@@ -72,9 +75,10 @@ class AntiBotProvider:
|
||||
async def solve(self, page: Page, info: ChallengeInfo):
|
||||
await self.solver.solve(page, info)
|
||||
|
||||
def configure(self, success_locator=None, **kwargs):
|
||||
def configure(self, success_locator=None, detect_locator=None, **kwargs):
|
||||
self.solver = self._solver_cls(**kwargs)
|
||||
self._success_locator = success_locator
|
||||
self._detect_locator = detect_locator
|
||||
|
||||
def clear(self):
|
||||
del self.solver
|
||||
|
||||
Reference in new issue
Block a user