capsolver_sit_watch
This commit is contained in:
1 parent
d436d6aaca
commit
6959670729
2 files changed
+8
-55
No files matched your search
+1
-7
@@ -38,8 +38,7 @@ RUN pip install --no-cache-dir --root-user-action=ignore \
|
|||||||
langchain \
|
langchain \
|
||||||
python-dotenv \
|
python-dotenv \
|
||||||
setuptools \
|
setuptools \
|
||||||
httpx \
|
httpx
|
||||||
capsolver-extension-python
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
@@ -52,11 +51,6 @@ COPY app.py .
|
|||||||
# Создаем директорию для данных браузера
|
# Создаем директорию для данных браузера
|
||||||
RUN mkdir -p /app/browser-data && chmod 777 /app/browser-data
|
RUN mkdir -p /app/browser-data && chmod 777 /app/browser-data
|
||||||
|
|
||||||
# Скачиваем и распаковываем CapSolver расширение для автоматического решения капчи
|
|
||||||
RUN wget -q https://github.com/capsolver/capsolver-browser-extension/releases/download/v.1.17.0/CapSolver.Browser.Extension-chrome-v1.17.0.zip -O /tmp/capsolver.zip && \
|
|
||||||
unzip -q /tmp/capsolver.zip -d /app/capsolver-extension && \
|
|
||||||
rm /tmp/capsolver.zip
|
|
||||||
|
|
||||||
EXPOSE 8383
|
EXPOSE 8383
|
||||||
EXPOSE 9222
|
EXPOSE 9222
|
||||||
|
|
||||||
|
|||||||
@@ -12,14 +12,6 @@ from browser_use.agent.views import AgentHistoryList
|
|||||||
import uvicorn
|
import uvicorn
|
||||||
from fastapi.responses import HTMLResponse
|
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
|
||||||
REMOTE_DEBUGGING_PORT = int(os.getenv("REMOTE_DEBUGGING_PORT", "9222"))
|
REMOTE_DEBUGGING_PORT = int(os.getenv("REMOTE_DEBUGGING_PORT", "9222"))
|
||||||
REMOTE_DEBUGGING_ENABLED = os.getenv("REMOTE_DEBUGGING_ENABLED", "false").lower() == "true"
|
REMOTE_DEBUGGING_ENABLED = os.getenv("REMOTE_DEBUGGING_ENABLED", "false").lower() == "true"
|
||||||
@@ -863,29 +855,11 @@ async def run_browser_task(task_id: str, task: str, max_steps: int, model: str):
|
|||||||
"--enable-webgl2-compute-context",
|
"--enable-webgl2-compute-context",
|
||||||
])
|
])
|
||||||
|
|
||||||
# Добавляем расширение CapSolver для автоматического решения капчи
|
# Убираем загрузку расширения CapSolver - используем API вместо него
|
||||||
|
# Расширение конфликтует с Cloudflare Turnstile
|
||||||
|
# Решение капчи происходит через функцию solve_captcha_with_capsolver
|
||||||
if AUTO_SOLVE_CAPTCHA and CAPSOLVER_API_KEY:
|
if AUTO_SOLVE_CAPTCHA and CAPSOLVER_API_KEY:
|
||||||
# Используем capsolver_extension_python для получения пути к расширению
|
logger.info(f"[{task_id}] CapSolver will solve CAPTCHA via API (not extension)")
|
||||||
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: {capsolver_ext_path}")
|
|
||||||
else:
|
|
||||||
logger.warning(f"[{task_id}] CapSolver extension not found at {capsolver_ext_path}")
|
|
||||||
|
|
||||||
# Добавляем специальные флаги для обхода reCAPTCHA если включено
|
# Добавляем специальные флаги для обхода reCAPTCHA если включено
|
||||||
if RECAPTCHA_BYPASS:
|
if RECAPTCHA_BYPASS:
|
||||||
@@ -1024,26 +998,11 @@ async def run_browser_task(task_id: str, task: str, max_steps: int, model: str):
|
|||||||
logger.info("Google Chrome not found, using default Chromium")
|
logger.info("Google Chrome not found, using default Chromium")
|
||||||
chrome_path = None
|
chrome_path = None
|
||||||
|
|
||||||
# Загружаем расширение CapSolver если настроено
|
# Убираем загрузку расширения CapSolver - используем API
|
||||||
|
# Расширение конфликтует с Cloudflare Turnstile
|
||||||
extensions = []
|
extensions = []
|
||||||
if AUTO_SOLVE_CAPTCHA and CAPSOLVER_API_KEY:
|
if AUTO_SOLVE_CAPTCHA and CAPSOLVER_API_KEY:
|
||||||
capsolver_ext_path = None
|
logger.info("CapSolver will solve CAPTCHA via API (not extension)")
|
||||||
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(f"CapSolver extension will be loaded: {capsolver_ext_path}")
|
|
||||||
else:
|
|
||||||
logger.warning(f"CapSolver extension not found at {capsolver_ext_path}")
|
|
||||||
|
|
||||||
browser_profile = BrowserProfile(
|
browser_profile = BrowserProfile(
|
||||||
user_data_dir="/app/browser-data/main_profile",
|
user_data_dir="/app/browser-data/main_profile",
|
||||||
|
|||||||
Reference in new issue
Block a user