news 2026/5/5 5:05:37

Selenium 绕过 Cloudflare 反爬检测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Selenium 绕过 Cloudflare 反爬检测

在数据采集与自动化测试领域,Cloudflare 是开发者绕不开的反爬屏障,其 2026 年的防护体系已从单一的 IP 拦截、验证码验证,升级为融合 AI 行为分析、多维度指纹识别、实时信任评分的动态防御系统。原生 Selenium 因存在明显的自动化特征,极易被 Cloudflare 识别并拦截,而通过针对性的环境配置、工具优化与行为模拟,能够有效绕过其检测机制。本文将从 Cloudflare 检测原理出发,分享 2026 年实战验证的 Selenium 绕过方案,涵盖核心工具使用、指纹伪装、行为优化等关键要点,兼顾实用性与可操作性。

一、先搞懂:Cloudflare 如何识别 Selenium 自动化

Cloudflare 对 Selenium 的检测并非依靠单一指标,而是通过多维度信号构建客户端信任评分,评分低于阈值则会触发 JS 挑战、Turnstile 验证码甚至直接 403 拦截。其核心检测维度主要集中在以下 4 点,也是我们后续绕过的关键突破点:

  1. 浏览器指纹异常:原生 Selenium 的 Canvas、WebGL、AudioContext 指纹具有规律性,与真实浏览器存在明显差异;同时navigator.webdriver属性会直接暴露自动化身份。
  2. 请求特征暴露:默认请求头不完整、User-Agent 固定、TLS 握手参数与真实浏览器不一致,HTTP/2 帧序列缺乏随机性。
  3. 行为模式机械化:请求间隔固定、无页面跳转的直接接口访问、鼠标 / 滚动操作无随机波动,与真人的不规则行为形成鲜明对比。
  4. IP 信誉过低:使用数据中心 IP、单一 IP 高频请求、IP 历史存在爬虫行为,会被 Cloudflare 列入低信誉库,直接提升检测等级。

二、核心方案:Selenium 防检测改造与工具选型

原生 Selenium 无法绕过 Cloudflare 的核心原因是自动化特征过于明显,因此最优解是基于 Selenium 进行去特征化改造,或使用封装了防检测能力的衍生工具。以下是 2026 年实战效果最佳的 3 种方案,从易到难排列,适配不同防护等级的站点。

方案 1:undetected-chromedriver—— 零配置快速上手

undetected-chromedriver(简称 uc)是 Selenium 的优化版 Chrome 驱动,也是目前绕过基础 Cloudflare 防护的首选工具,其核心是自动给 Chrome 驱动打补丁,隐藏navigator.webdriver属性、修复指纹特征,无需手动配置即可避开大部分基础检测。

安装与基础使用

python

运行

# 安装最新版 pip install undetected-chromedriver # 或从GitHub安装开发版,适配最新Chrome pip install git+https://github.com/ultrafunkamsterdam/undetected-chromedriver@master
核心代码示例

支持无头模式、自定义浏览器参数,基础使用即可应对 80% 的 Cloudflare 基础防护:

python

运行

from undetected_chromedriver import Chrome, ChromeOptions import time # 配置浏览器选项 options = ChromeOptions() # 开启无头模式(可选,部分高防护站点建议关闭) # options.headless = True # 禁用图片加载,提升速度 options.add_argument('--blink-settings=imagesEnabled=false') # 模拟真实浏览器窗口 options.add_argument('--window-size=1920,1080') # 禁用自动化相关提示 options.add_argument('--disable-blink-features=AutomationControlled') # 初始化驱动 driver = Chrome(options=options) # 随机延迟,模拟真人操作 time.sleep(1 + float(f"{random.randint(1, 5)}")/10) # 访问目标站点 driver.get("https://target-site.com") # 后续操作:获取页面内容、解析数据等 print(driver.page_source) # 关闭驱动 driver.quit()

方案 2:SeleniumBase UC 模式 —— 适配中高防护站点

SeleniumBase 是一个功能强大的 Selenium 封装库,其UC 模式整合了 undetected-chromedriver 的核心能力,并新增了 Turnstile 验证码辅助点击、自动处理 JS 挑战的功能,适配 Cloudflare 中高防护等级的站点。相比纯 uc,SeleniumBase 的行为模拟更贴近真人,支持随机鼠标移动、页面滚动,进一步降低检测概率。

安装与核心代码

python

运行

# 安装SeleniumBase pip install seleniumbase # 核心代码:启用UC模式 from seleniumbase import SB with SB(uc=True, headless=False, window_size=(1920, 1080)) as sb: # 访问目标站点,自动处理Cloudflare JS挑战 sb.open("https://target-site.com") # 随机滚动页面,模拟真人浏览 sb.scroll_randomly() # 随机延迟 sb.sleep_random(1, 3) # 获取页面内容 print(sb.get_page_source())

方案 3:原生 Selenium 深度改造 —— 自定义指纹与请求头

若上述工具无法满足需求,可对原生 Selenium 进行深度去特征化改造,核心是手动隐藏自动化属性、伪造浏览器指纹、完善请求头,适配 Cloudflare 高防护站点。该方案需要一定的开发功底,适合定制化需求。

核心改造点
  1. 注入 JS 代码,删除navigator.webdriver属性:

python

运行

driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
  1. 配置真实且完整的请求头,避免 User-Agent 固定:

python

运行

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities # 定制请求头 caps = DesiredCapabilities.CHROME caps['goog:chromeOptions'] = { 'args': ['--window-size=1920,1080'], 'prefs': {'profile.default_content_settings': {'images': 2}} } # 设置真实User-Agent(建议从真人浏览器中复制) caps['userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
  1. 禁用 Chrome 的自动化扩展,避免特征暴露:

python

运行

options.add_argument('--disable-extensions') options.add_argument('--disable-plugins-discovery') options.add_experimental_option('excludeSwitches', ['enable-automation']) options.add_experimental_option('useAutomationExtension', False)

三、进阶优化:从 “技术伪装” 到 “行为拟真”

2026 年的 Cloudflare 防护体系对行为特征的检测远胜于技术特征,即便完成了 Selenium 的去特征化改造,若行为模式仍呈机械化,依然会被拦截。因此,在技术改造的基础上,需通过以下优化让自动化行为无限贴近真人,提升 Cloudflare 的信任评分。

1. 模拟真人的访问行为

  • 遵循正常访问路径:先访问站点首页,再跳转列表页、详情页,避免直接请求数据接口,同时加载部分静态资源(如 CSS、JS);
  • 增加随机操作:在脚本中加入随机的鼠标移动、点击空白处、页面滚动,使用 Selenium 的ActionChains实现不规则交互;
  • 控制请求节奏:避免固定时间间隔,使用random.uniform(a, b)生成随机延迟,且延迟时间控制在 1-5 秒,符合真人浏览习惯。

2. 优化网络环境,提升 IP 信誉

IP 是 Cloudflare 检测的第一道关卡,即便伪装再好,低信誉 IP 也会直接触发高强度检测:

  • 优先使用住宅 IP/ISP 代理:这类 IP 归属真实用户,Cloudflare 信誉评分高,触发验证码的概率比数据中心 IP 低 60% 以上;
  • 实现IP 轮换与会话粘性:每 5-10 次请求切换一次 IP,且通过验证获取cf_clearanceCookie 后,后续请求保持同一 IP,避免 IP 突变;
  • 控制单 IP 请求频率:避免短时间内高频请求,单 IP 每分钟请求数控制在 20 次以内。

3. 稳定浏览器指纹,避免频繁变化

Cloudflare 会跟踪指纹的一致性,频繁更换指纹会被判定为高风险行为:

  • 固定核心指纹参数:时区、语言、屏幕分辨率与代理 IP 的地区保持一致,例如海外 IP 设置为 UTC 时区、英文语言;
  • 避免频繁修改 User-Agent:可维护一个真实 User-Agent 列表,每次运行脚本随机选取,而非每次请求都更换。

4. 合理处理验证与错误,避免 “硬顶式重试”

遇到 JS 挑战、验证码时,直接重试会放大异常信号,导致信任评分快速下降:

  • 遇到验证页面时,先暂停脚本,或调用验证码识别 API(如打码平台)处理,而非反复刷新;
  • 遇到 403、超时等错误时,执行退避策略:先切换 IP,再降低请求频率,等待 1-2 分钟后再重新访问。

四、高防护场景:组合拳方案

对于 Cloudflare 开启了 Shield Synapse、Bot Management v4.0 的高防护站点,单一的 Selenium 改造已无法绕过,此时需要采用组合拳方案,结合工具、指纹浏览器、API 服务,实现全方位的伪装与规避:

  1. 指纹浏览器 + Selenium:使用比特浏览器等专业指纹工具,为每个爬虫任务创建独立的虚拟环境,底层修改浏览器内核指纹,再结合 undetected-chromedriver 实现自动化,解决 Canvas、WebGL 等深层指纹检测;
  2. 借助专业反爬 API:如穿云 API、ZenRows,这类服务封装了成熟的绕过方案,支持自动处理 Cloudflare 验证、伪装指纹与行为,只需调用 API 即可实现数据采集,无需手动配置 Selenium;
  3. 底层协议替换:抛弃 WebDriver 协议,使用 Nodriver 通过 Chrome DevTools Protocol(CDP)与浏览器通信,减少自动化特征暴露,适配超高防护站点。

五、注意事项与合规性提醒

  1. 及时跟进工具更新:Cloudflare 的防护机制持续升级,undetected-chromedriver、SeleniumBase 等工具也会同步更新补丁,需及时升级工具版本,避免因版本滞后导致绕过失败;
  2. 避免过度爬取:即便成功绕过检测,也需控制爬取规模,避免对目标站点的服务器造成压力,否则可能面临站点的人工封禁;
  3. 遵守法律法规与站点协议:数据采集需遵循《网络安全法》《个人信息保护法》,不得爬取受保护的商业数据、个人信息,同时需查看目标站点的robots.txt协议,避免违规爬取。

六、总结

2026 年 Selenium 绕过 Cloudflare 的核心,已从单纯的技术伪装转向全方位的行为拟真,不再是单一工具的使用,而是 “工具改造 + 指纹稳定 + 行为模拟 + 网络优化” 的综合方案。对于基础防护站点,使用 undetected-chromedriver 即可快速实现绕过;对于中高防护站点,需结合 SeleniumBase UC 模式与真人行为模拟;对于超高防护站点,则需要指纹浏览器、专业反爬 API 的组合加持。

同时,开发者需明确:Cloudflare 与爬虫的博弈是一个长期过程,不存在一劳永逸的绕过方法,唯有持续关注 Cloudflare 的防护演进,及时调整策略,同时保持爬虫行为的 “温和性”,才能在数据采集与反爬之间找到平衡。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 4:29:46

MLLM Token压缩技术研究综述:解决大模型高计算成本的实用指南

多模态大模型(MLLM)处理高分辨率图像和长视频时面临巨大计算成本,Token压缩技术成为解决方案。本文基于压缩位置系统分类了现有方法,包括Vision Encoder、Projector和LLM模块中的压缩策略,以及多模块协同压缩。同时针对不同场景提供了选择合适…

作者头像 李华
网站建设 2026/4/26 20:35:58

除夕必做5件事:让全家团圆饭更有年味儿的小细节

当前国内数字化工具领域加速迭代,视觉设计、协同办公、内容创作等细分赛道成为企业与个人提升效率的核心场景。传统国际标杆工具多存在操作门槛高、本土场景适配不足、版权风险隐现等痛点,难以满足国内用户对高效、合规、易用的需求。在此背景下&#xf…

作者头像 李华
网站建设 2026/5/2 20:07:28

【计算机毕业设计案例】基于springboot的电影院订票选座系统电影院票务预定系统(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/5 0:12:02

2026毕设ssm+vue驴友社交管理系统论文+程序

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。 系统程序文件列表 开题报告内容 一、选题背景 关于户外旅游社交问题的研究,现有研究主要以传统旅游信息平台或单一社交应用为主,专门针对驴友…

作者头像 李华
网站建设 2026/4/28 16:59:16

校直机设计

2 设计要求 (1)已知原始数据及工作条件 ① 校直机所要校直的工件,板簧规格为2590mm; ② 工作地点为室内,工作平稳; ③ 校直液压缸载荷400kN。 (2)设计成果 ① 毕业设计说明书1份&…

作者头像 李华
网站建设 2026/5/3 17:02:06

龙门射线检测装置设计

2 龙门射线检测装置总体设计方案 2.1 龙门射线检测装置简介 龙门射线检测装置可用于中小型机械设备的检测中,利用一些穿透性较强的射线进行无损探测,将探测所得图像利用图像处理技术,进一步的分析处理,获得检测报告进行反馈&#…

作者头像 李华