Drissionpage自动化过cloudflare5s盾

本文介绍如何使用Drissionpage自动化工具绕过Cloudflare的5秒盾验证,帮助开发者在爬虫项目中顺利访问受保护的网站。

背景介绍

Cloudflare的5秒盾(I’m Under Attack Mode)是一种安全机制,用于检测和阻止恶意流量。当网站启用此功能时,访问者需要通过一个挑战页面,通常需要等待5秒钟或完成JavaScript挑战才能继续访问网站。

对于爬虫开发者来说,这构成了一个挑战,因为普通的HTTP请求无法通过这种验证。本文将介绍如何使用Drissionpage库来自动化处理这个验证过程。

解决方案

Drissionpage是一个基于Chrome的自动化工具,可以模拟真实用户的行为来通过Cloudflare的验证。以下是具体的实现代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from DrissionPage import Chromium

# 启动浏览器
browser = Chromium()
tab = browser.latest_tab

# 访问目标网站
tab.get('https://dash.cloudflare.com/sign-up')
tab.wait(10)

# 定位挑战容器
parent_div = tab.ele('x://div[@data-testid="challenge-widget-container"]/div/div')
sr1 = parent_div.shadow_root
iframe_page = sr1.ele('x://iframe')
body = iframe_page.ele('x://body')
shadow_root = iframe_page.shadow_root
button = body.shadow_root.ele('x//input[@type="checkbox"]')
button.click()

代码解析

  1. 导入库:首先导入DrissionPage的Chromium类
  2. 启动浏览器:创建Chromium实例并获取最新的标签页
  3. 访问网站:使用tab.get()方法访问目标网站
  4. 等待加载:使用tab.wait()等待页面加载完成
  5. 定位元素:通过XPath定位到Cloudflare挑战的复选框元素
  6. 点击验证:模拟用户点击复选框完成验证

注意事项

  1. 等待时间:根据网络情况调整等待时间,确保页面完全加载
  2. 元素定位:Cloudflare的页面结构可能会变化,需要根据实际情况调整XPath
  3. 浏览器环境:确保系统已安装Chrome浏览器
  4. 反爬措施:频繁请求可能会触发更严格的验证机制

参考资料


Drissionpage自动化过cloudflare5s盾
https://miku2024.top/posts/Drissionpage自动化过cloudflare5s盾/
作者
KB
发布于
2025年11月12日
许可协议