如何配置Firefox Driver实现Chrome Driver同款反Selenium检测效果?
Firefox Driver 实现Chrome同款Selenium反检测配置
下面是对应你Chrome配置的Firefox完整代码,每一项都匹配原Chrome配置的功能:
from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from selenium.common.exceptions import NoSuchElementException, TimeoutException options = webdriver.FirefoxOptions() # 对应Chrome的无头模式 + 窗口最大化 options.headless = True options.add_argument("--start-maximized") # 核心反检测配置,对应Chrome的自动化屏蔽项 options.set_preference("dom.webdriver.enabled", False) # 关闭Firefox暴露的webdriver标识 options.set_preference("browser.autofocus", False) # 避免自动化窗口焦点异常 options.set_preference("privacy.resistFingerprinting", True) # 开启指纹抵抗,降低被识别概率 options.set_preference("extensions.enabledScopes", 0) # 禁用自动化触发的扩展 options.set_preference("extensions.autoDisableScopes", 10) # 覆盖User Agent,和Chrome的UA替换完全一致 options.set_preference("general.useragent.override", 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36') # 初始化Firefox驱动(注意驱动文件是geckodriver.exe) driver = webdriver.Firefox(options=options, executable_path='geckodriver.exe') # 额外加固:和Chrome一样修改navigator.webdriver属性 driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined});")
配置对应说明
- 无头模式与窗口最大化:和Chrome逻辑完全一致,确保后台运行时窗口尺寸正常。
- 禁用WebDriver标识:
dom.webdriver.enabled = False直接关闭Firefox默认暴露的自动化标记,对应Chrome中--disable-blink-features=AutomationControlled和修改navigator.webdriver的作用。 - 屏蔽自动化特征:指纹抵抗、扩展禁用等配置,对应Chrome中
excludeSwitches和useAutomationExtension=False的效果,避免网站通过浏览器行为特征检测Selenium。 - User Agent替换:直接通过Firefox偏好设置覆盖UA,和Chrome的CDP命令效果一致。
内容的提问来源于stack exchange,提问作者anfwkdrn
相关产品推荐
相关产品推荐

