如何使用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
相关产品推荐
相关产品推荐

