capsolver_py_wrap
This commit is contained in:
1 parent
e8143e2627
commit
d436d6aaca
2 files changed
+37
-5
No files matched your search
+2
-1
@@ -38,7 +38,8 @@ RUN pip install --no-cache-dir --root-user-action=ignore \
|
||||
langchain \
|
||||
python-dotenv \
|
||||
setuptools \
|
||||
httpx
|
||||
httpx \
|
||||
capsolver-extension-python
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
|
||||
@@ -12,6 +12,14 @@ from browser_use.agent.views import AgentHistoryList
|
||||
import uvicorn
|
||||
from fastapi.responses import HTMLResponse
|
||||
|
||||
# Пробуем импортировать capsolver_extension_python
|
||||
try:
|
||||
from capsolver_extension_python import Capsolver
|
||||
CAPSOLVER_EXTENSION_AVAILABLE = True
|
||||
except ImportError:
|
||||
CAPSOLVER_EXTENSION_AVAILABLE = False
|
||||
logger.warning("capsolver_extension_python not installed, CapSolver extension will not work")
|
||||
|
||||
# Настройки Remote Debugging
|
||||
REMOTE_DEBUGGING_PORT = int(os.getenv("REMOTE_DEBUGGING_PORT", "9222"))
|
||||
REMOTE_DEBUGGING_ENABLED = os.getenv("REMOTE_DEBUGGING_ENABLED", "false").lower() == "true"
|
||||
@@ -857,13 +865,25 @@ async def run_browser_task(task_id: str, task: str, max_steps: int, model: str):
|
||||
|
||||
# Добавляем расширение CapSolver для автоматического решения капчи
|
||||
if AUTO_SOLVE_CAPTCHA and CAPSOLVER_API_KEY:
|
||||
capsolver_ext_path = "/app/capsolver-extension"
|
||||
# Используем capsolver_extension_python для получения пути к расширению
|
||||
capsolver_ext_path = None
|
||||
if CAPSOLVER_EXTENSION_AVAILABLE:
|
||||
try:
|
||||
capsolver_ext_path = Capsolver(api_key=CAPSOLVER_API_KEY).load()
|
||||
logger.info(f"[{task_id}] CapSolver extension loaded via Python wrapper: {capsolver_ext_path}")
|
||||
except Exception as e:
|
||||
logger.warning(f"[{task_id}] Failed to load CapSolver via wrapper: {e}")
|
||||
|
||||
# Если не удалось через wrapper, пробуем старый способ
|
||||
if not capsolver_ext_path or not os.path.exists(capsolver_ext_path):
|
||||
capsolver_ext_path = "/app/capsolver-extension"
|
||||
|
||||
if os.path.exists(capsolver_ext_path):
|
||||
chrome_cmd.extend([
|
||||
f"--disable-extensions-except={capsolver_ext_path}",
|
||||
f"--load-extension={capsolver_ext_path}",
|
||||
])
|
||||
logger.info(f"[{task_id}] CapSolver extension enabled")
|
||||
logger.info(f"[{task_id}] CapSolver extension enabled: {capsolver_ext_path}")
|
||||
else:
|
||||
logger.warning(f"[{task_id}] CapSolver extension not found at {capsolver_ext_path}")
|
||||
|
||||
@@ -1007,10 +1027,21 @@ async def run_browser_task(task_id: str, task: str, max_steps: int, model: str):
|
||||
# Загружаем расширение CapSolver если настроено
|
||||
extensions = []
|
||||
if AUTO_SOLVE_CAPTCHA and CAPSOLVER_API_KEY:
|
||||
capsolver_ext_path = "/app/capsolver-extension"
|
||||
capsolver_ext_path = None
|
||||
if CAPSOLVER_EXTENSION_AVAILABLE:
|
||||
try:
|
||||
capsolver_ext_path = Capsolver(api_key=CAPSOLVER_API_KEY).load()
|
||||
logger.info(f"CapSolver extension loaded via Python wrapper: {capsolver_ext_path}")
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to load CapSolver via wrapper: {e}")
|
||||
|
||||
# Если не удалось через wrapper, пробуем старый способ
|
||||
if not capsolver_ext_path or not os.path.exists(capsolver_ext_path):
|
||||
capsolver_ext_path = "/app/capsolver-extension"
|
||||
|
||||
if os.path.exists(capsolver_ext_path):
|
||||
extensions = [capsolver_ext_path]
|
||||
logger.info("CapSolver extension will be loaded")
|
||||
logger.info(f"CapSolver extension will be loaded: {capsolver_ext_path}")
|
||||
else:
|
||||
logger.warning(f"CapSolver extension not found at {capsolver_ext_path}")
|
||||
|
||||
|
||||
Reference in new issue
Block a user