stealth-recapcha-repair

This commit is contained in:
nafer committed 2026-03-10 14:37:49 +03:00
1 parent 692f4c0dd1
commit 3bc16f775f
3 files changed
+37 -29

No files matched your search

+31 -2
View File
@@ -28,7 +28,8 @@ CLOUD_PROXY_COUNTRY = os.getenv("CLOUD_PROXY_COUNTRY", "")
# ===========================================
# Настройки stealth
# ===========================================
BROWSER_HEADLESS = os.getenv("BROWSER_HEADLESS", "false").lower() == "true"
# ВНИМАНИЕ: headless=false всегда для поддержки reCAPTCHA
BROWSER_HEADLESS = False # Всегда false для поддержки reCAPTCHA
USE_XVFB = os.getenv("USE_XVFB", "true").lower() == "true"
VIEWPORT_SIZE = os.getenv("VIEWPORT_SIZE", "") # Формат: WIDTHxHEIGHT, напр. 1920x1080
@@ -38,6 +39,11 @@ VIEWPORT_SIZE = os.getenv("VIEWPORT_SIZE", "") # Формат: WIDTHxHEIGHT, н
CAPSOLVER_API_KEY = os.getenv("CAPSOLVER_API_KEY", "")
AUTO_SOLVE_CAPTCHA = os.getenv("AUTO_SOLVE_CAPTCHA", "false").lower() == "true"
# ===========================================
# Настройки обхода reCAPTCHA
# ===========================================
RECAPTCHA_BYPASS = os.getenv("RECAPTCHA_BYPASS", "false").lower() == "true"
from contextlib import asynccontextmanager
import logging
@@ -46,6 +52,15 @@ import logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
# Логирование настроек браузера
logger.info(f"=== Browser Configuration ===")
logger.info(f"BROWSER_HEADLESS: {BROWSER_HEADLESS}")
logger.info(f"USE_XVFB: {USE_XVFB}")
logger.info(f"REMOTE_DEBUGGING_ENABLED: {REMOTE_DEBUGGING_ENABLED}")
logger.info(f"RECAPTCHA_BYPASS: {RECAPTCHA_BYPASS}")
logger.info(f"AUTO_SOLVE_CAPTCHA: {AUTO_SOLVE_CAPTCHA}")
logger.info(f"===========================")
# Создаём Tools с кастомными действиями
try:
from browser_use import Tools, BrowserSession
@@ -815,6 +830,20 @@ async def run_browser_task(task_id: str, task: str, max_steps: int, model: str):
"--disable-extensions-except=/app/stealth-extension",
])
# Добавляем специальные флаги для обхода reCAPTCHA если включено
if RECAPTCHA_BYPASS:
chrome_cmd.extend([
# Флаги для обхода reCAPTCHA
"--disable-blink-features=AutomationControlled",
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-setuid-sandbox",
# Отключаем некоторые функции, которые могут мешать reCAPTCHA
"--disable-features=TranslateUI",
"--disable-ipc-flooding-protection",
])
logger.info(f"[{task_id}] Added reCAPTCHA bypass flags")
# Добавляем прокси если есть
chrome_cmd.extend(proxy_args)
@@ -909,7 +938,7 @@ async def run_browser_task(task_id: str, task: str, max_steps: int, model: str):
browser_profile = BrowserProfile(
user_data_dir="/app/browser-data/main_profile",
profile_directory="Default",
headless=True,
headless=False, # Всегда false для поддержки reCAPTCHA
keep_alive=True,
)
browser = Browser(browser_profile=browser_profile)