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

如何使用Selenium Python自动接受各网站的Cookie弹窗

解决Selenium自动化中Cookie弹窗的通用方案

方案一:优化浏览器Cookie设置(适配Firefox/Chrome)

Firefox适配版

你之前用的network.cookie.cookieBehavior=2是拒绝所有Cookie,但脸书、Ins这类网站会强制检测用户的Cookie同意状态,哪怕浏览器允许Cookie,仍会弹出提示。改成自动接受所有Cookie+禁用隐私提示的组合设置:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
# 自动接受所有Cookie(0=允许所有,1=仅允许来自当前站点,2=拒绝所有)
options.set_preference("network.cookie.cookieBehavior", 0)
# 禁用Cookie通知弹窗
options.set_preference("privacy.notification.enabled", False)
# 隐藏网站隐私政策提示
options.set_preference("privacy.websites.hideTrackingPolicy", True)

driver = webdriver.Firefox(options=options)

Chrome适配版

Chrome通过启动参数和实验性偏好设置直接跳过Cookie弹窗:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# 禁用弹窗和通知拦截
options.add_argument("--disable-popup-blocking")
options.add_argument("--disable-notifications")
# 强制允许所有Cookie,关闭Cookie提示
options.add_experimental_option("prefs", {
    "profile.default_content_setting_values.cookies": 1,
    "profile.block_third_party_cookies": False,
    "profile.cookie_controls_mode": 0  # 0=允许所有Cookie,无提示
})

driver = webdriver.Chrome(options=options)

方案二:通用Cookie弹窗自动点击脚本(兼容多数网站)

如果浏览器设置仍失效,写一个覆盖常见按钮的自动点击逻辑,适配多语言场景:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def accept_cookies(driver):
    # 常见的"同意Cookie"按钮文本(含多语言)
    accept_texts = ["Accept", "Accept All", "同意全部", "接受全部", "Accepter", "Akzeptieren"]
    # 常见的按钮定位规则
    locators = [
        (By.XPATH, f"//button[contains(text(), '{text}')]") for text in accept_texts
    ] + [
        (By.ID, "accept-cookie"),
        (By.CLASS_NAME, "cookie-accept"),
        (By.XPATH, "//button[@aria-label='Accept cookies']")
    ]
    
    for locator in locators:
        try:
            button = WebDriverWait(driver, 5).until(
                EC.element_to_be_clickable(locator)
            )
            button.click()
            break
        except:
            continue

# 使用示例
driver = webdriver.Firefox()
driver.get("https://facebook.com")
accept_cookies(driver)

方案三:借助浏览器扩展自动处理

安装专门的Cookie自动同意扩展(比如"I Don't Care About Cookies"),在Selenium中加载扩展直接跳过弹窗:

Chrome加载扩展

options = Options()
# 替换为本地扩展的.crx文件路径
options.add_extension("/your/path/I-Dont-Care-About-Cookies.crx")
driver = webdriver.Chrome(options=options)

Firefox加载扩展

options = Options()
# 替换为本地扩展的.xpi文件路径
options.add_argument("-install-global-extension=/your/path/I-Dont-Care-About-Cookies.xpi")
driver = webdriver.Firefox(options=options)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:06:25