stealth-recapcha-repair
This commit is contained in:
1 parent
692f4c0dd1
commit
3bc16f775f
3 files changed
+37
-29
No files matched your search
@@ -1,26 +0,0 @@
|
||||
# ===========================================
|
||||
# Browser Use MCP Server Configuration
|
||||
# ===========================================
|
||||
|
||||
# OpenRouter API Key (обязательно)
|
||||
OPENROUTER_API_KEY=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
|
||||
|
||||
# LLM Provider - используем OpenRouter
|
||||
LLM_PROVIDER=openrouter
|
||||
|
||||
# Модель для browser agent
|
||||
LLM_MODEL_NAME=arcee-ai/trinity-large-preview:free
|
||||
|
||||
# ===========================================
|
||||
# Опциональные настройки
|
||||
# ===========================================
|
||||
BROWSER_HEADLESS=true
|
||||
AGENT_MAX_STEPS=20
|
||||
AGENT_USE_VISION=true
|
||||
SERVER_PORT=8383
|
||||
SERVER_HOST=0.0.0.0
|
||||
|
||||
# Remote Debugging
|
||||
REMOTE_DEBUGGING_ENABLED=true
|
||||
REMOTE_DEBUGGING_PORT=9222
|
||||
|
||||
+6
-1
@@ -18,7 +18,8 @@ LLM_MODEL_NAME=google/gemini-2.0-flash-001
|
||||
# ===========================================
|
||||
|
||||
# Запуск браузера в headless режиме (true/false)
|
||||
# Рекомендуется: false для максимального stealth
|
||||
# ВНИМАНИЕ: headless=false всегда для поддержки reCAPTCHA!
|
||||
# Это значение игнорируется, браузер всегда запускается в не-headless режиме
|
||||
BROWSER_HEADLESS=false
|
||||
|
||||
# Максимальное количество шагов для выполнения задачи
|
||||
@@ -65,6 +66,10 @@ CAPSOLVER_API_KEY=
|
||||
# Автоматически решать капчу (true/false)
|
||||
AUTO_SOLVE_CAPTCHA=false
|
||||
|
||||
# Включить специальные флаги Chrome для обхода reCAPTCHA (true/false)
|
||||
# Помогает если reCAPTCHA не отображается
|
||||
RECAPTCHA_BYPASS=false
|
||||
|
||||
# ===========================================
|
||||
# Настройки сервера
|
||||
# ===========================================
|
||||
|
||||
@@ -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