From d952804a923ddfe84560a8b8d952714b23da5191 Mon Sep 17 00:00:00 2001 From: liuwei Date: Tue, 26 Aug 2025 17:15:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5chrome=20=E8=BF=9B=E7=A8=8B?= =?UTF-8?q?=E5=BC=BA=E5=88=B6=E9=80=80=E5=87=BA=E6=B5=81=E7=A8=8B=E3=80=82?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E8=BF=9B=E7=A8=8B=E4=B8=80=E5=8F=AA=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E6=B6=88=E8=80=97=E8=B5=84=E6=BA=90=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/sehuatang/shehuatang.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/utils/sehuatang/shehuatang.py b/utils/sehuatang/shehuatang.py index 51ed411..bae1a8a 100644 --- a/utils/sehuatang/shehuatang.py +++ b/utils/sehuatang/shehuatang.py @@ -44,7 +44,7 @@ def download_image(url): def fetch_and_create_pdf(url): """根据给定URL抓取页面并生成PDF""" - driver =None + driver = None try: # 配置Selenium options = Options() @@ -222,21 +222,31 @@ def fetch_and_create_pdf(url): # 加密PDF add_pdf_encryption(absolute_pdf_path) - driver.quit() - return absolute_pdf_path except Exception as e: logger.error(f"生成PDF时出错: {e}") - driver.quit() # 如果生成失败,返回一个默认路径或空字符串 return "" except Exception as e: logger.error(f"抓取帖子时出错: {e}") # 如果抓取失败,返回一个默认路径或空字符串 - driver.quit() return "" finally: - driver.quit() + # 确保在所有情况下都关闭driver + if driver: + try: + driver.quit() + logger.debug("Chrome driver已成功关闭") + except Exception as e: + logger.error(f"关闭Chrome driver时出错: {e}") + # 在极端情况下尝试强制结束进程 + try: + import psutil + process = psutil.Process(driver.service.process.pid) + process.terminate() + logger.debug("已强制终止Chrome进程") + except Exception as e2: + logger.error(f"强制终止Chrome进程失败: {e2}") # add_pdf_encryption 和 pdf_file_path 函数保持不变 def add_pdf_encryption(pdf_file, password="4000"):