You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查杀指定进程时如何将chromedriver进程加入白名单避免被误关闭

解决方案

方案1:优化进程查杀逻辑,通过启动参数区分普通Chrome和爬虫Chrome

chromedriver启动的Chrome进程,命令行参数会携带--remote-debugging-port等专属标识,我们可以先过滤掉带这类标识的进程,再执行查杀,无需修改任何文件。

  • 首先安装psutil库方便获取进程详情:pip install psutil
  • 替换原有查杀代码为以下逻辑:
import psutil

KILL_PROCESS_NAMES = {"chrome.exe"}
# 爬虫Chrome进程的特征参数,可根据实际情况补充
WHITE_PARAM_FLAGS = {"--remote-debugging-port", "--headless=new", "--automation"}

for proc in psutil.process_iter(['name', 'cmdline']):
    try:
        proc_name = proc.info['name'].lower()
        if proc_name not in KILL_PROCESS_NAMES:
            continue
        # 检查是否是白名单内的爬虫进程
        cmd_line = " ".join(proc.info['cmdline']).lower()
        is_white = any(flag.lower() in cmd_line for flag in WHITE_PARAM_FLAGS)
        if not is_white:
            proc.kill()
    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
        # 跳过无法访问、已结束的进程
        pass

该方案不需要修改chromedriver或Chrome的任何配置,不会影响日常爬虫的运行逻辑,误杀率极低。

方案2:修改爬虫专用Chrome的可执行文件名

如果不想修改原有查杀逻辑,可以单独为爬虫准备一个专属Chrome版本,操作步骤如下:

  • 下载Chrome便携版/独立安装到单独目录,不要和日常使用的Chrome共用安装路径
  • 将该目录下的chrome.exe重命名为任意名称,比如chrome_scraper.exe
  • 启动chromedriver时,指定使用改名后的可执行文件:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# 这里填你改名后的爬虫Chrome的完整路径
chrome_options.binary_location = r"C:\scraper_chrome\chrome_scraper.exe"
driver = webdriver.Chrome(options=chrome_options)
  • 原有查杀逻辑保留即可,只会查杀名为chrome.exe的进程,不会碰你改名后的爬虫Chrome进程。

如果需要同时避免误杀chromedriver自身进程,直接将chromedriver.exe重命名为任意名称即可,比如my_scraper_driver.exe,使用时指定驱动路径即可:

driver = webdriver.Chrome(executable_path=r"C:\tools\my_scraper_driver.exe", options=chrome_options)

内容的提问来源于stack exchange,提问作者MyDisplay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:06:08