55import os
66import sys
77import subprocess
8- # 修复 Windows 上 patchright 的 asyncio 兼容性问题
8+ # 修复 Windows 上 playwright 的 asyncio 兼容性问题
99os .environ .setdefault ("PLAYWRIGHT_BROWSERS_PATH" , "0" )
1010
1111import asyncio
@@ -43,7 +43,7 @@ def _is_running_in_docker() -> bool:
4343IS_DOCKER = _is_running_in_docker ()
4444
4545
46- # ==================== patchright 自动安装 ====================
46+ # ==================== playwright 自动安装 ====================
4747def _run_pip_install (package : str , use_mirror : bool = False ) -> bool :
4848 """运行 pip install 命令"""
4949 cmd = [sys .executable , '-m' , 'pip' , 'install' , package ]
@@ -67,8 +67,8 @@ def _run_pip_install(package: str, use_mirror: bool = False) -> bool:
6767
6868
6969def _run_playwright_install (use_mirror : bool = False ) -> bool :
70- """安装 patchright chromium 浏览器"""
71- cmd = [sys .executable , '-m' , 'patchright ' , 'install' , 'chromium' ]
70+ """安装 playwright chromium 浏览器"""
71+ cmd = [sys .executable , '-m' , 'playwright ' , 'install' , 'chromium' ]
7272 env = os .environ .copy ()
7373
7474 if use_mirror :
@@ -91,37 +91,37 @@ def _run_playwright_install(use_mirror: bool = False) -> bool:
9191 return False
9292
9393
94- def _ensure_patchright_installed () -> bool :
95- """确保 patchright 已安装"""
94+ def _ensure_playwright_installed () -> bool :
95+ """确保 playwright 已安装"""
9696 try :
97- import patchright
98- debug_logger .log_info ("[BrowserCaptcha] patchright 已安装" )
97+ import playwright
98+ debug_logger .log_info ("[BrowserCaptcha] playwright 已安装" )
9999 return True
100100 except ImportError :
101101 pass
102102
103- debug_logger .log_info ("[BrowserCaptcha] patchright 未安装,开始自动安装..." )
104- print ("[BrowserCaptcha] patchright 未安装,开始自动安装..." )
103+ debug_logger .log_info ("[BrowserCaptcha] playwright 未安装,开始自动安装..." )
104+ print ("[BrowserCaptcha] playwright 未安装,开始自动安装..." )
105105
106106 # 先尝试官方源
107- if _run_pip_install ('patchright ' , use_mirror = False ):
107+ if _run_pip_install ('playwright ' , use_mirror = False ):
108108 return True
109109
110110 # 官方源失败,尝试国内镜像
111111 debug_logger .log_info ("[BrowserCaptcha] 官方源安装失败,尝试国内镜像..." )
112112 print ("[BrowserCaptcha] 官方源安装失败,尝试国内镜像..." )
113- if _run_pip_install ('patchright ' , use_mirror = True ):
113+ if _run_pip_install ('playwright ' , use_mirror = True ):
114114 return True
115115
116- debug_logger .log_error ("[BrowserCaptcha] ❌ patchright 自动安装失败,请手动安装: pip install patchright " )
117- print ("[BrowserCaptcha] ❌ patchright 自动安装失败,请手动安装: pip install patchright " )
116+ debug_logger .log_error ("[BrowserCaptcha] ❌ playwright 自动安装失败,请手动安装: pip install playwright " )
117+ print ("[BrowserCaptcha] ❌ playwright 自动安装失败,请手动安装: pip install playwright " )
118118 return False
119119
120120
121121def _ensure_browser_installed () -> bool :
122122 """确保 chromium 浏览器已安装"""
123123 try :
124- from patchright .sync_api import sync_playwright
124+ from playwright .sync_api import sync_playwright
125125 with sync_playwright () as p :
126126 # 尝试获取浏览器路径,如果失败说明未安装
127127 browser_path = p .chromium .executable_path
@@ -144,31 +144,31 @@ def _ensure_browser_installed() -> bool:
144144 if _run_playwright_install (use_mirror = True ):
145145 return True
146146
147- debug_logger .log_error ("[BrowserCaptcha] ❌ chromium 浏览器自动安装失败,请手动安装: python -m patchright install chromium" )
148- print ("[BrowserCaptcha] ❌ chromium 浏览器自动安装失败,请手动安装: python -m patchright install chromium" )
147+ debug_logger .log_error ("[BrowserCaptcha] ❌ chromium 浏览器自动安装失败,请手动安装: python -m playwright install chromium" )
148+ print ("[BrowserCaptcha] ❌ chromium 浏览器自动安装失败,请手动安装: python -m playwright install chromium" )
149149 return False
150150
151151
152- # 尝试导入 patchright
152+ # 尝试导入 playwright
153153async_playwright = None
154154Route = None
155155BrowserContext = None
156- PATCHRIGHT_AVAILABLE = False
156+ PLAYWRIGHT_AVAILABLE = False
157157
158158if IS_DOCKER :
159159 debug_logger .log_warning ("[BrowserCaptcha] 检测到 Docker 环境,有头浏览器打码不可用,请使用第三方打码服务" )
160160 print ("[BrowserCaptcha] ⚠️ 检测到 Docker 环境,有头浏览器打码不可用" )
161161 print ("[BrowserCaptcha] 请使用第三方打码服务: yescaptcha, capmonster, ezcaptcha, capsolver" )
162162else :
163- if _ensure_patchright_installed ():
163+ if _ensure_playwright_installed ():
164164 try :
165- from patchright .async_api import async_playwright , Route , BrowserContext
166- PATCHRIGHT_AVAILABLE = True
165+ from playwright .async_api import async_playwright , Route , BrowserContext
166+ PLAYWRIGHT_AVAILABLE = True
167167 # 检查并安装浏览器
168168 _ensure_browser_installed ()
169169 except ImportError as e :
170- debug_logger .log_error (f"[BrowserCaptcha] patchright 导入失败: { e } " )
171- print (f"[BrowserCaptcha] ❌ patchright 导入失败: { e } " )
170+ debug_logger .log_error (f"[BrowserCaptcha] playwright 导入失败: { e } " )
171+ print (f"[BrowserCaptcha] ❌ playwright 导入失败: { e } " )
172172
173173
174174# 配置
@@ -563,10 +563,10 @@ def _check_available(self):
563563 "有头浏览器打码在 Docker 环境中不可用。"
564564 "请使用第三方打码服务: yescaptcha, capmonster, ezcaptcha, capsolver"
565565 )
566- if not PATCHRIGHT_AVAILABLE or async_playwright is None :
566+ if not PLAYWRIGHT_AVAILABLE or async_playwright is None :
567567 raise RuntimeError (
568- "patchright 未安装或不可用。"
569- "请手动安装: pip install patchright && python -m patchright install chromium"
568+ "playwright 未安装或不可用。"
569+ "请手动安装: pip install playwright && python -m playwright install chromium"
570570 )
571571
572572 async def _load_browser_count (self ):
0 commit comments