chore: настроен обход антибот защиты

This commit is contained in:
protokey committed 2026-09-21 19:33:49 +04:00
1 parent 4cc068a616
commit 1cfd9bafef
6 files changed
+118 -66

No files matched your search

+7 -9
View File
@@ -10,6 +10,7 @@ textarea[id="h-captcha-response-0dm47zf0gn8t"]
"""
import asyncio
import logging
from .base import Captcha, Page
@@ -23,12 +24,11 @@ class SolverHCaptcha(Captcha):
ctype = "hcaptcha"
async def solve(self, selector, page: Page):
# проверка что элемент с капчей есть
div_container = page.locator(selector)
await div_container.wait_for()
if not div_container:
return None
# поиск данных и элементов
site_key = await div_container.get_attribute("data-sitekey")
is_invisible = bool(await div_container.get_attribute("data-invisible"))
@@ -39,7 +39,10 @@ class SolverHCaptcha(Captcha):
textarea_g = await page.query_selector(f"#g-recaptcha-response-{textarea_id_postfix}")
textarea_h = await page.query_selector(f"#h-captcha-response-{textarea_id_postfix}")
# решение
code = await self.hcaptcha(page.url, site_key, is_invisible)
# подстановка решения
await textarea_g.evaluate((
"(el, value) => {"
"el.value = value;"
@@ -52,9 +55,4 @@ class SolverHCaptcha(Captcha):
"el.dispatchEvent(new Event('input', {bubbles: true}));"
"}"
), code)
return None
async def hcaptcha(self, url, site_key, is_invisible):
resp = self._solver.hcaptcha(site_key, url, invisible=is_invisible)
logger.debug(f"hcaptcha response: {resp}")
return resp["code"]
return code