什么是 DrissionPage?
DrissionPage 是一款基于 Python 的网页自动化工具。它最核心的竞争力在于 将「浏览器控制」与「数据包收发」合二为一,让开发者在享受浏览器自动化便捷性的同时,也能获得类似 requests 库的高效性能。
该工具语法简洁,代码量少,对编程新手非常友好。它支持 Windows、Linux 及 Mac 系统(Python 3.6+),能够完美适配 Chrome、Edge 等 Chromium 内核浏览器以及 Electron 应用。
核心特性:自研内核的优势
不同于传统的 Selenium,DrissionPage 采用全自研内核,在功能整合与性能优化上具有显著优势:
- 摆脱驱动依赖: 不基于 WebDriver,无需为不同版本的浏览器频繁下载和匹配驱动。
- 极速运行: 整体执行效率更高,响应速度更快。
- 灵活处理 iframe: 将
<iframe>视为普通元素,支持跨框架直接查找,无需繁琐的「切入」与「切出」操作。 - 多标签页并发: 支持同时操作多个标签页,即使标签页处于非激活状态也无需手动切换。
- 高效资源获取: 可直接读取浏览器缓存保存图片,无需通过 GUI 模拟点击「另存为」。
- 全页截图: 支持对整个网页(含视口外区域)进行截图(需浏览器版本 90+)。
- 深度兼容: 能够处理非
open状态的 shadow-root。
功能亮点
除了内核层面的优化,DrissionPage 在实用性上进行了大量人性化设计:
- 极简语法: 集成大量高频功能,使代码逻辑更优雅,定位元素更稳定。
- 鲁棒性强: 内置自动等待与重试机制,有效应对网络波动,提升程序稳定性。
- 便捷调试: 支持复用已打开的浏览器,无需每次运行都重新启动,极大提升开发效率。
- 高性能解析: 内置 lxml 解析引擎,将页面解析速度提升数个数量级。
- 专业架构: 采用 POM(Page Object Model)模式封装,便于扩展且可直接用于自动化测试。
- 简化配置: 通过 ini 文件保存常用设置,避免在代码中编写繁琐的配置项。
- 内置下载工具: 在操作浏览器的同时,提供快捷可靠的文件下载能力。
快速开始
欲了解更多详细用法,可通过以下官方渠道获取文档与源码:
- 官方文档: https://drissionpage.cn/
- GitHub 仓库: https://github.com/g1879/DrissionPage
- Gitee 镜像: https://gitee.com/g1879/DrissionPage
正文完
