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)
|
# Запуск браузера в headless режиме (true/false)
|
||||||
# Рекомендуется: false для максимального stealth
|
# ВНИМАНИЕ: headless=false всегда для поддержки reCAPTCHA!
|
||||||
|
# Это значение игнорируется, браузер всегда запускается в не-headless режиме
|
||||||
BROWSER_HEADLESS=false
|
BROWSER_HEADLESS=false
|
||||||
|
|
||||||
# Максимальное количество шагов для выполнения задачи
|
# Максимальное количество шагов для выполнения задачи
|
||||||
@@ -65,6 +66,10 @@ CAPSOLVER_API_KEY=
|
|||||||
# Автоматически решать капчу (true/false)
|
# Автоматически решать капчу (true/false)
|
||||||
AUTO_SOLVE_CAPTCHA=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
|
# Настройки 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"
|
USE_XVFB = os.getenv("USE_XVFB", "true").lower() == "true"
|
||||||
VIEWPORT_SIZE = os.getenv("VIEWPORT_SIZE", "") # Формат: WIDTHxHEIGHT, напр. 1920x1080
|
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", "")
|
CAPSOLVER_API_KEY = os.getenv("CAPSOLVER_API_KEY", "")
|
||||||
AUTO_SOLVE_CAPTCHA = os.getenv("AUTO_SOLVE_CAPTCHA", "false").lower() == "true"
|
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
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
@@ -46,6 +52,15 @@ import logging
|
|||||||
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
||||||
logger = logging.getLogger(__name__)
|
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 с кастомными действиями
|
# Создаём Tools с кастомными действиями
|
||||||
try:
|
try:
|
||||||
from browser_use import Tools, BrowserSession
|
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",
|
"--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)
|
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(
|
browser_profile = BrowserProfile(
|
||||||
user_data_dir="/app/browser-data/main_profile",
|
user_data_dir="/app/browser-data/main_profile",
|
||||||
profile_directory="Default",
|
profile_directory="Default",
|
||||||
headless=True,
|
headless=False, # Всегда false для поддержки reCAPTCHA
|
||||||
keep_alive=True,
|
keep_alive=True,
|
||||||
)
|
)
|
||||||
browser = Browser(browser_profile=browser_profile)
|
browser = Browser(browser_profile=browser_profile)
|
||||||
|
|||||||
Reference in new issue
Block a user