feature!: перенимаем реализацию прохождения cf_turnstile у scrapling
https://github.com/D4Vinci/Scrapling BREAKING_CHANGES: клик отрабатывает, но прохода не случается
This commit is contained in:
1 parent
f2d4d441f4
commit
8f7645b2b9
11 files changed
+193
-30
No files matched your search
@@ -63,7 +63,7 @@ import re
|
||||
import time
|
||||
from random import randint
|
||||
|
||||
from playwright.async_api import Page
|
||||
from patchright.async_api import Page
|
||||
|
||||
from ..base import Detector, ChallengeInfo, AntiBotProvider, Solver
|
||||
from ..base import Stage
|
||||
@@ -140,9 +140,10 @@ __CF_PATTERN__ = re.compile(r"^https://challenges\.cloudflare\.com/cdn-cgi/chall
|
||||
class CloudflareSolver(Solver):
|
||||
|
||||
async def solve(self, page: Page, info: ChallengeInfo):
|
||||
print("start solving")
|
||||
iframe = page.frame(url=__CF_PATTERN__)
|
||||
if iframe:
|
||||
await page.wait_for_timeout(randint(4000, 7000)) # дать чекбоксу домонтироваться в closed shadow root
|
||||
await page.wait_for_timeout(randint(500, 1000))
|
||||
frame_el = await iframe.frame_element()
|
||||
box = await frame_el.bounding_box()
|
||||
else:
|
||||
@@ -152,8 +153,6 @@ class CloudflareSolver(Solver):
|
||||
# # Calculate the Captcha coordinates for any viewport
|
||||
captcha_x, captcha_y = box["x"] + randint(26, 28), box["y"] + randint(25, 27)
|
||||
|
||||
# await page.mouse.click(captcha_x, captcha_y, delay=randint(100, 200), button="left")
|
||||
|
||||
await click_human(page, captcha_x, captcha_y)
|
||||
|
||||
await wait_for_networkidle(page)
|
||||
@@ -186,6 +185,7 @@ class CloudflareSolver(Solver):
|
||||
return
|
||||
return
|
||||
else:
|
||||
|
||||
captcha_solver = self._opt.get("captcha_solver")
|
||||
if not captcha_solver:
|
||||
raise RuntimeError("Нужен captcha_solver (2captcha) чтобы решить Turnstile")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
from playwright.async_api import Page
|
||||
from patchright.async_api import Page
|
||||
|
||||
from captcha.base import Captcha
|
||||
|
||||
|
||||
Reference in new issue
Block a user