如何过cloudflare五秒盾反爬

一、Cloudflare 5秒盾是什么

1、Cloudflare是一个流行的服务,用于保护网站免受DDoS攻击和其他安全威胁。然而,这种保护服务有时会给合法用户带来问题,例如出现难以解决的验证码人机验证,最典型和常见的,就是请求的时候会出现 Just a moment...

2、Cloudflare 是一种基于云技术的Web应用程序防火墙(WAF),旨在保护网站免受各种Web攻击,它能够在5秒内检测到并阻止恶意流量

3、https://www.cloudflare-cn.com/what-is-cloudflare/

如何判断该网站有Cloudflare反爬

1、常见的特征1:我们通过requests请求后,响应状态码是403,请求的时候会出现 Just a mom

import requests
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
url = "https://toppsta.com/books/series/29278/national-geographic-kids-readers-level-1"
res = requests.get(url, headers=headers, timeout=10)
print("============requests, res.status_code, res.cookies, res.text)

2、常见特征2:响应头里面的Server是cloudflare

3、常见特征3:请求头Cookie常常有__cf_bm之类的开头,__cfduid,  __cf_clearance  等

三、Cloudflare之5秒盾免费版怎么过

1、【免费版5秒盾】在无痕模式下打开并没有跳出校验真人,而是直接是数据展示页面,但是req

uests请求会是403,免费版的5秒盾可以通过cloudscraper 库过;pip install cloudscraper

import cloudscraper
scraper = cloudscraper.create_scraper()
url = 'https://toppsta.com/books/series/29278/national-geographic-kids-readers-level-1'
res = scraper.get(url)
print("============scraper的方式", res.status_code, res.cookies, res.text)

2、【免费版5秒盾】在无痕模式下打开并没有跳出确认真人界面,但是requests请求会是403,cloudscraper的请求也是403,但是通过curl_cffi库可以通过,检查了tls指纹;pip install curl_cffi  https://github.com/lwthiker/curl-impersonate  关于curl_cffi的和指纹的相关介绍推荐看这篇文章 https://zhuanlan.zhihu.com/p/601474166

from curl_cffi import requests as cffi_requests
res = cffi_requests.get("https://www.chinatimes.com/?chdtv", impersonate='chrome110', timeout=10)
print("============cffi_requests的方式", res.status_code, res.cookies, res.text)

四、Cloudflare之5秒盾付费版怎么过

1、【付费版5秒盾】首次无痕模式下打开https://faucet.evmos.dev/ , 如图会跳出确认您是真人,我们直接用requests请求会发现响应状态码是403, 且响应文本里面存在 Just a moment...

2、【付费版5秒盾】首次无痕模式下打开,确定您是真人:https://www.mediamarkt.de/de/product/_ecg-nm-2255-milk-frother-black-90790545.html

# 过五秒盾反爬
from DrissionPage import ChromiumPage, ChromiumOptions
import platform
from loguru import logger

if platform.system().lower() == 'windows':
    co = ChromiumOptions().set_paths(browser_path=r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe")
    value = '确认您是真人'
else:
    co = ChromiumOptions().set_paths(browser_path=r"/opt/google/chrome/google-chrome")
    value = 'Verify you are human'
    co.headless(True)   # 设置无头加载  无头模式是一种在浏览器没有界面的情况下运行的模式,它可以提高浏览器的性能和加载速度
    co.incognito(True)  # 无痕隐身模式打开的话,不会记住你的网站账号密码的
    co.set_argument('--no-sandbox')  # 禁用沙箱 禁用沙箱可以避免浏览器在加载页面时进行安全检查,从而提高加载速度 默认情况下,所有Chrome 用户都启用了隐私沙盒选项  https://zhuanlan.zhihu.com/p/475639754
    co.set_argument("--disable-gpu")  # 禁用GPU加速可以避免浏览器在加载页面时使用过多的计算资源,从而提高加载速度
    co.set_user_agent(user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36')  # 设置ua


browser = ChromiumPage(co)  # 创建对象
browser.set.window.max()
browser.get("https://cn.airbusan.com/content/common/customercenter/noticeList", retry=3, interval=2, timeout=15)   # 访问网

logger.info(f"user_agent is {browser.user_agent}")
browser.wait(2)
for i in range(20):
    if browser.ele(f'x://input[@value="{value}"]', timeout=3):
        logger.warning(f"retry {i+1} times, Verify you are human click now")
        browser.ele(f'x://input[@value="{value}"]').click()
        browser.wait(2)
    if not browser.cookies().as_dict().get('cf_clearance'):
        logger.error(f"retry {i+1} times, browser_cookie is {browser.cookies().as_dict()}")
        continue
    else:
        logger.success(f"retry {i+1} times, browser_cookie is {browser.cookies().as_dict()}")
        break
# with open(r"./ccc.html", "w") as f:
#     f.write(browser.html)
browser.wait(2)
browser.wait.ele_displayed('x://td[@class="subject"]/a', timeout=3)
for tr in browser.eles('x://div[@class="boardList mgt60"]//tr', timeout=3)[1:]:
    tds = [td.text for td in tr.eles("x://td", timeout=3)]
    detail_url = tr.ele('x://td[@class="subject"]/a').attr('href')
    logger.info(f"list_page_company is {tds} , a_href is {detail_url}")
# 对整页截图并保存
# browser.get_screenshot(path=r'./headless_False.png', full_page=True)
browser.get_screenshot(path=r'./headless_True.png', full_page=True)
browser.quit()

 更多关于drissionPage的操作,查看:DrissionPage官网

### Cloudflare 5秒逆向工程分析 Cloudflare 的 5 秒 (Five Second Shield) 是一种用于防止自动化攻击和恶意流量的安全机制。当检测到异常访问模式时,会触发一个短暂的延迟页面来验证请求的真实性。 为了理解其工作原理,可以从以下几个方面进行研究: #### HTTP 响应头中的提示信息 服务器返回给客户端的响应头部可能含有特定字段,这些字段对于识别防护措施至关重要[^1]。例如 `Server` 字段可能会暴露使用的 Web 应用防火墙版本;而自定义设置下的某些非标准头部也可能暗示着额外保护层的存在。 #### JavaScript 验证逻辑 许多情况下,5 秒通过注入一段复杂的JavaScript代码实现前端交互验证。这段脚本通常经过混淆处理以增加解析难度,并且包含了时间戳、用户行为跟踪等功能来判断是否允许继续加载目标网页资源[^2]。 ```javascript // 这是一个简化版的例子,实际环境中的JS往往更加复杂难以阅读 (function() { var t = new Date().getTime(); document.cookie="cf_clearance="+encodeURIComponent(t)+"; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT;"; })(); ``` #### 浏览器指纹技术应用 除了基于时间的限制外,还利用浏览器特性收集设备属性作为唯一标识符的一部分,比如屏幕分辨率、安装插件列表等参数组合起来形成独一无二的“指纹”,以此区分正常浏览者与潜在威胁源[^3]。 需要注意的是,在任何情况下都应当合法合规地开展此类安全测试活动,遵循相关法律法规以及服务提供商的服务条款规定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值