stealth-recapcha-repair
This commit is contained in:
1 parent
692f4c0dd1
commit
3bc16f775f
3 files changed
+37
-29
No files matched your search
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user