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

如何使用Python Selenium绕过Cloudflare防护 可行方案咨询

Cloudflare 5秒校验绕过方案(Selenium场景)

Cloudflare会基于浏览器指纹、请求特征等多维度判断是否为自动化程序,原生Selenium、配置不当的undetected-chromedriver都会被轻易识别,可参考以下方案调整:

1. 修正undetected-chromedriver配置

多数情况下undetected-chromedriver不生效是版本不匹配、参数配置缺失导致的,参考正确配置:

import undetected_chromedriver as uc
import time

def test():
    options = uc.ChromeOptions()
    # 隐藏自动化特征标记
    options.add_argument("--disable-blink-features=AutomationControlled")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    # 替换为真实桌面端Chrome的User-Agent,不要使用默认自动化UA
    options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
    # 可选:调用本地Chrome的用户数据目录,复用真实浏览指纹,绕过概率更高
    # options.add_argument(r"--user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data")
    
    # version_main参数填写你本地Chrome的主版本号,必须和本地浏览器版本完全匹配
    driver = uc.Chrome(options=options, version_main=118)
    # 覆写webdriver属性
    driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
        "source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
    })
    driver.get('https://nowsecure.nl') 
    time.sleep(10)
    print(driver.page_source)

test()

2. 改用Playwright+stealth插件

Playwright生态的指纹隐藏能力优于Selenium,绕过成功率更高:
首先安装依赖:pip install playwright playwright-stealth,执行playwright install chromium安装匹配的浏览器。
代码示例:

from playwright.sync_api import sync_playwright
from playwright_stealth import stealth_sync

def test():
    with sync_playwright() as p:
        # 不要开启无头模式,无头特征极易被Cloudflare识别
        browser = p.chromium.launch(headless=False)
        context = browser.new_context(
            user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
            viewport={"width": 1920, "height": 1080}
        )
        page = context.new_page()
        # 注入stealth脚本隐藏全部自动化特征
        stealth_sync(page)
        page.goto("https://nowsecure.nl")
        page.wait_for_timeout(5000)
        print(page.content())
        browser.close()

test()

通用注意事项

  • 非必要不要使用无头模式,Linux环境需要后台运行可以用xvfb虚拟桌面,Windows环境可以调用系统API最小化窗口
  • 控制请求频率,同一IP短时间高频请求即使指纹正常也会触发Cloudflare的IP层拦截或验证码校验
  • 如果目标站点开启了强制人机校验,需要额外接入打码服务处理,没有方案可以100%绕过所有级别的Cloudflare防护

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 13:24:02