feat(配置): 增加playwright_dir配置项并优化浏览器路径查找逻辑
添加playwright_dir配置项以支持自定义浏览器路径 优化打包环境和开发环境下的浏览器路径查找逻辑,优先使用配置中的路径 删除不再使用的build.bat打包脚本
This commit is contained in:
51
spider.py
51
spider.py
@@ -289,31 +289,48 @@ class SpiderManager:
|
||||
logger.info(f"开始爬取上证所网页截图: {url}")
|
||||
logger.info(f"目标XPath: {xpath}")
|
||||
|
||||
# 首先从配置中读取浏览器路径
|
||||
config_playwright_dir = self.config.get('playwright_dir')
|
||||
if config_playwright_dir:
|
||||
logger.info(f"从配置中获取到Playwright浏览器路径: {config_playwright_dir}")
|
||||
|
||||
# 获取当前脚本目录
|
||||
if getattr(sys, 'frozen', False):
|
||||
# 打包后的环境
|
||||
current_dir = os.path.dirname(sys.executable)
|
||||
# 尝试多个可能的Playwright浏览器路径
|
||||
possible_paths = [
|
||||
os.path.join(current_dir, '_internal', 'ms-playwright'),
|
||||
os.path.join(current_dir, 'ms-playwright'),
|
||||
os.path.join(os.path.dirname(current_dir), 'ms-playwright')
|
||||
]
|
||||
|
||||
playwright_dir = None
|
||||
for path in possible_paths:
|
||||
if os.path.exists(path):
|
||||
playwright_dir = path
|
||||
logger.info(f"找到Playwright浏览器路径: {playwright_dir}")
|
||||
break
|
||||
|
||||
if not playwright_dir:
|
||||
logger.warning("未找到Playwright浏览器路径,尝试使用系统默认路径")
|
||||
# 优先使用配置中的路径
|
||||
if config_playwright_dir and os.path.exists(config_playwright_dir):
|
||||
playwright_dir = config_playwright_dir
|
||||
logger.info(f"使用配置中指定的Playwright浏览器路径: {playwright_dir}")
|
||||
else:
|
||||
# 配置路径不存在或未设置,尝试多个可能的Playwright浏览器路径
|
||||
possible_paths = [
|
||||
os.path.join(current_dir, '_internal', 'ms-playwright'),
|
||||
os.path.join(current_dir, 'ms-playwright'),
|
||||
os.path.join(os.path.dirname(current_dir), 'ms-playwright')
|
||||
]
|
||||
|
||||
playwright_dir = None
|
||||
for path in possible_paths:
|
||||
if os.path.exists(path):
|
||||
playwright_dir = path
|
||||
logger.info(f"找到Playwright浏览器路径: {playwright_dir}")
|
||||
break
|
||||
|
||||
if not playwright_dir:
|
||||
logger.warning("未找到Playwright浏览器路径,尝试使用系统默认路径")
|
||||
else:
|
||||
# 开发环境
|
||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
playwright_dir = None
|
||||
logger.info(f"开发环境,当前目录: {current_dir}")
|
||||
|
||||
# 优先使用配置中的路径
|
||||
if config_playwright_dir and os.path.exists(config_playwright_dir):
|
||||
playwright_dir = config_playwright_dir
|
||||
logger.info(f"使用配置中指定的Playwright浏览器路径: {playwright_dir}")
|
||||
else:
|
||||
playwright_dir = None
|
||||
logger.info(f"开发环境,当前目录: {current_dir}")
|
||||
|
||||
output_dir = current_dir
|
||||
screenshot_path = os.path.join(output_dir, "sse_screenshot.png")
|
||||
|
||||
Reference in New Issue
Block a user