0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自动化测试如何绕过Cloudflare验证码?Python + Selenium 脚本实战指南!

汉通达 2025-08-15 10:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群


01什么是 Cloudflare 验证码

Cloudflare 提供网络工具,并提供一套全面的安全功能,以保护网站免受各种在线威胁。Cloudflare 验证码是一种用于区分人类用户和自动化机器人的功能。它是 Cloudflare 安全服务的重要组成部分,旨在防御网站免受自动化攻击和滥用

c383c638-797b-11f0-9080-92fbcf53809c.png

Cloudflare 验证码的独特功能

集成的安全解决方案:

Cloudflare 的验证码服务通常作为其整体安全解决方案的一部分提供,包括DDoS 保护Web 应用防火墙 (WAF)内容分发网络 (CDN)等。这使得网站可以从单个平台获得全面的安全保护。

智能流量管理:

Cloudflare 利用其全球网络和智能流量管理技术,通过在检测到异常流量或潜在威胁时动态触发验证码,更有效地保护网站。

无缝用户体验:

Cloudflare 致力于通过减少对合法用户的干扰来提供无缝的用户体验。例如他们的“Turnstile”验证码旨在通过最少的用户交互来验证人类访问者。

隐私:

Cloudflare 强调隐私,致力于减少对用户数据的依赖和收集,并提供更隐私友好的身份验证方法。



02Cloudflare 如何检测机器人

Chromedriver 检测

确定浏览器是否受自动化工具控制。


像 Chromedriver 这样的自动化工具可以通过检查特定的浏览器行为和属性来检测,这些行为和属性是自动化脚本所特有的。例如,某些 JavaScript 变量或浏览器属性可以揭示自动化工具的存在。此外,监控交互的时间和模式可以帮助识别非人类行为


设备指纹识别

如果相同的浏览器指纹用于大量访问,可以识别为机器行为。需要使用不同的有效浏览器指纹信息来分配访问。


设备指纹识别涉及收集用户设备的各种属性,如屏幕分辨率、安装的字体、浏览器插件等。通过组合这些属性,可以为每个设备创建一个唯一标识符(指纹)。在多个会话中重复使用相同的指纹可能表明自动化活动。为减轻这种情况,需要随机化和变化指纹数据,使其更像人类。


IP 代理检测

阻止恶意 IP 位置并限制请求频率。


IP 代理检测涉及识别和阻止与恶意活动或高频请求相关的 IP 地址。技术包括维护已知坏 IP 地址的黑名单,使用地理位置数据阻止可疑区域,并实施速率限制以防止单个 IP 地址发出过多请求。此外,分析 IP 地址的行为模式可以帮助区分合法用户和自动化机器人


浏览器真实性

检查浏览器属性和请求信息是否异常,例如,头部中的User-Agent是否由 Python 代码发出,以及User-Agent声明的浏览器是否具有相应属性。


JavaScript 挑战

向用户发送 JavaScript 代码。通常,爬虫没有直接渲染 JS 的能力。通过其他手段模拟脚本执行有相应的检测方法。在代码执行期间,收集一系列设备信息,如 canvas、navigator、插件、Chrome 版本以及一系列物理硬件设备信息。这些设备信息被加密并由 Cloudflare 判断其真实性


Cookie

通过检查cf_clearance的有效期,持续更新并跟踪用户行为是否异常。


TLS 指纹识别

浏览器通常使用 HTTP/2,编程语言发出的请求大多默认使用 HTTP/1.1。此外,浏览器请求的 JA3 信息与编程语言的不同。

TLS 指纹识别是一种用于识别和验证 TLS(传输层安全)通信的技术

TLS 指纹可以通过检查在 TLS 握手期间使用的密码套件、协议版本和加密算法来确定 TLS 通信的特征。由于每个 TLS 实现使用不同的密码套件、协议版本和加密算法,比较 TLS 指纹可以确定通信是否来自预期的源或目标。

TLS 指纹识别可用于检测网络欺骗、中间人攻击和间谍活动等安全威胁,还可用于识别和管理设备和应用程序。



03如何绕过并解决 Cloudflare 验证码

1. CapSolver

有很多方法可以解决 Cloudflare 中的验证码,但最流行和高效的方法是使用第三方解决服务,你可以使用 CapSolver 来解决验证码。以下是基本步骤:

使用 CapSolver 获取有效令牌,然后通过 TLS 请求库正常访问。


CapSolver 可以通过提供有效的 Cookie 和会话数据来帮助绕过各种检测机制。一旦获得这些凭证,就可以使用令牌正常发送请求。你需要使用 TLS 库发送有效请求。这种方法确保请求看起来是真实的,不太可能被阻止或标记为可疑


此外,使用 CapSolver 可以帮助你解决以下问题:

IP 检测:使用高质量代理绕过 IP 阻止和限制。

JavaScript 挑战:像真实浏览器一样执行 JavaScript 代码,确保正确处理挑战。

人机交互:根据挑战执行相应操作,模拟人类行为。

设备环境指纹识别:每次使用干净有效的浏览器环境信息,通过真实性检查。


以下是使用 Python 获取 Cloudflare Turnstile 解决方案的示例代码:

c397a59a-797b-11f0-9080-92fbcf53809c.png


2. Puppeteer、Selenium、Playwright

使用浏览器自动化工具来驱动网站访问并检索数据,这可以避免复杂的 JavaScript 检测;然而,这些工具可能会被检测到是由机器人控制的


浏览器自动化工具如 Puppeteer、Selenium 和 Playwright可以模拟用户与网站的真实交互,包括处理 JavaScript 挑战和渲染动态内容。虽然它们可以绕过一些检测机制,但它们通常会留下可被反机器人系统识别的痕迹。通过随机化鼠标移动、按键等互动,可以帮助减轻被检测的风险。


3. Undetected Chromedriver

可以绕过一些机器人控制检测。


undetected_chromedriver是一个修改版的 Chromedriver,包含了避免被反机器人机制检测的补丁。它可以通过模拟人类行为和修改浏览器属性来处理各种形式的浏览器指纹识别和其他检测技术。此工具特别适用于网络抓取和自动化测试,其中标准 Chromedriver 会被阻止。


4. 使用 Python curl_cffi 解决 TLS 检测

获取有效的 Cookie 后,结合其他方法重复访问网站。关键是要确保 TLS 请求连接有效地被掩盖,否则数据访问仍会受到限制。



04结论

通过遵循这些步骤,你可以使用 Python 和 Selenium 以及 CapSolver 服务绕过并解决 Cloudflare 验证码。此方法确保你的自动化脚本可以顺利运行而无需人工干预。然而,始终以道德方式使用这些技术,并遵守你所互动网站的服务条款。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化测试
    +关注

    关注

    0

    文章

    248

    浏览量

    27447
  • 网络
    +关注

    关注

    14

    文章

    7904

    浏览量

    91420
  • python
    +关注

    关注

    56

    文章

    4836

    浏览量

    87919
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    10个杀手级的Python自动化脚本

    今天浩道跟大家分享10个日常工作中用到的python自动化脚本。让你感受一番python简单强大之处!
    发表于 11-28 11:07 861次阅读

    【上海】猎头推荐职位-自动化测试工程师(java/python

    猎头职位:自动化测试工程师(java/python)工作职责:1.负责测试报告输出、项目风险评估,对测试结果负责;2.负责对产品进行接口
    发表于 06-28 17:37

    如何在Python中使用Selenium

    脚本  · 在此示例中,我们使用Firefox驱动程序对“ Facebook登录页面”进行了自动化。  from selenium import webdriver
    发表于 09-08 18:17

    平台是如何高效的破解市面上各家验证码平台的各种形式验证码的?

    平台的两种破解方式针对这两点,目前打平台破解验证码方式主要是机器破解和人工打两种。1、机器破解:机器破解的好处在于自动化程度高,识别速度快,而且对于黑灰产用户的单词调用价格低,缺点
    发表于 11-01 15:21

    多样变换的手写验证码自动识别算法

    提出了一种多样变换的手写验证码自动识别算法,对彩色验证码进行识别主要包括彩色验证码的二值、手写字符的区域分割、同一字符的区域连接、使用卷积
    发表于 12-20 14:14 0次下载

    简单地描述了如何用机器学习绕过E-ZPass New York网站的验证码

    ,来防止电脑自动填写表单。但是随着深度学习和计算机视觉的兴起,它们现在往往很容易被攻破。我在读Adrian Rosebrock的优秀的著作《Python计算机视觉深度学习》。在书中,Adrian简单地描述了他如何用机器学习绕过E
    的头像 发表于 01-22 09:15 6760次阅读
    简单地描述了如何用机器学习<b class='flag-5'>绕过</b>E-ZPass New York网站的<b class='flag-5'>验证码</b>

    以一个真实网站的验证码为例,实现了基于一下KNN的验证码识别

    很多网站登录都需要输入验证码,如果要实现自动登录就不可避免的要识别验证码。本文以一个真实网站的验证码为例,实现了基于一下KNN的验证码识别。
    的头像 发表于 12-24 17:27 8224次阅读

    如何使用Python机器学习解决验证码的资料说明

    写爬虫有一个绕不过去的问题就是验证码,现在验证码分类大概有4种: 图像类 滑动类 点击类 语音类
    的头像 发表于 05-03 13:43 2591次阅读

    验证码层出不穷?试试这个自动跳过验证码的工具

    reCAPTCHA,要你辨认出图中的XX,点了一次又一次还是结果错误,简直抓狂!迫不得已之下,只能祭出这款自动跳过reCAPTCHA验证码的工具了。
    的头像 发表于 11-15 10:42 6527次阅读

    验证码太麻烦,自动跳过验证码神器试一试

    reCAPTCHA,要你辨认出图中的XX,点了一次又一次还是结果错误,简直抓狂!迫不得已之下,只能祭出这款自动跳过reCAPTCHA验证码的工具了。 像这种验证码,要你认出图中的桥,要怎么选嘛! 这款工具名叫Buster,它是一
    的头像 发表于 11-15 11:15 1.1w次阅读

    Selenium2 Python自动化测试实战第二版的PDF电子书免费下载

    在刚做测试的一年多时间里,笔者对各种测试技术和工具有着强烈的兴趣和学习欲望,再加上工作较为空闲,所以有幸接触到 QTP、Selenium自动化
    发表于 12-29 08:00 0次下载
    <b class='flag-5'>Selenium</b>2 <b class='flag-5'>Python</b><b class='flag-5'>自动化</b><b class='flag-5'>测试</b><b class='flag-5'>实战</b>第二版的PDF电子书免费下载

    测试自动化中的Python

      用于测试的编程需要与开发应用程序的编程不同的方法。如果你想要一种专门用于测试编码的简单而精简的语言,Python 是一个不错的选择。Python
    的头像 发表于 12-09 14:53 1130次阅读

    Selenium自动化中有何用处

      Selenium是一个开源的自动化测试工具,可以轻松自动化Web应用程序。它还能够自动化我们的功能
    的头像 发表于 12-09 15:05 2658次阅读

    分享10个实用的Python自动化脚本

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 个 Python 自动化
    的头像 发表于 01-21 15:58 1605次阅读

    Java 中验证码的使用

    今天我们讲一下在 Java 中验证码的使用。 验证码生成 本效果是利用easy-captcha工具包实现,首先需要添加相关依赖到pom.xml中,代码如下: com .github.whvcse
    的头像 发表于 09-25 11:11 1760次阅读
    Java 中<b class='flag-5'>验证码</b>的使用