如何用DrissionPage进行网页自动化

DrissionPage基于 Python 的网页自动化工具,名称来源于Driver(驱动)与Session(会话)的结合。

DrissionPage旨在将浏览器自动化的便利性与数据包收发的高效率融为一体。

这里尝试梳理和了解DrissionPage,并在harness的辅助下运行一个完整的网页自动化示例。

1 核心特性

DrissionPage 拥有多项旨在提升自动化效率与稳定性的特性:

1)双模式驱动

既能像Selenium控制浏览器,也能像Requests一样直接收发数据包,

并且可以在两种模式间无缝切换。

2)强大的自研内核

不依赖 WebDriver,因此无需为不同浏览器版本下载驱动,并具有更快的运行速度。

它支持直接跨<iframe>查找元素,无需像 Selenium 那样繁琐地切入切出。

3)极简的定位语法

提供了非常简洁的元素查找语法。

例如,查找包含特定文本的元素,

在 Selenium 中需要使用复杂的WebDriverWait和By.XPATH,

而在 DrissionPage 中只需tab('some text', timeout=10)。

4)多标签页与并发操作

它将每个标签页和 <iframe>都视为独立的对象,

可以同时操作多个标签页,甚至是非激活状态的标签页,无需来回切换。

5)无处不在的等待机制

在查找元素、等待下拉列表、处理弹窗等大量场景中内置了超时和自动重试功能,

极大提升了程序的稳定性。

6)丰富的集成功能

内置了强大的下载工具,支持大文件分块、多线程下载;

还能直接读取浏览器缓存来保存图片,无需通过 GUI 操作。

2 使用示例

2.1 快速开始

DrissionPage 支持 Windows、Linux、Mac** 操作系统,需要 Python 3.6及以上版本,

并支持Chromium 内核的浏览器(如 Chrome、Edge)。

通过 pip 即可安装。

pip install DrissionPage

以下代码展示了如何启动浏览器并访问一个页面。

from DrissionPage import Chromium

创建 Chromium 对象

browser = Chromium()

获取最新的标签页

tab = browser.latest_tab

访问网页

tab.get('https://www.drissionpage.cn')

2.2 Selenium对比

DrissionPage 常被视为 Selenium 的替代方案,两者在多个方面存在差异。

对比维度 DrissionPage Selenium
技术路线 基于自研内核,直接与浏览器 CDP 协议通信 基于 WebDriver 协议,需要浏览器驱动
驱动依赖 无需下载浏览器驱动 需要单独下载和管理对应版本的驱动
运行速度 更快,有实测数据显示页面加载耗时约 0.8s ,而 Selenium 约 3.2s 相对较慢,尤其在启动和操作时
多标签页 支持同时操作多个标签页,无需切换 同一时间只能操作一个标签页,需使用 switch_to()
Iframe 操作 可直接跨 <iframe> 查找元素,逻辑清晰 需要逐层切入切出,操作繁琐
生态与社区 相对较新,生态和国际化程度不如 Selenium 历史悠久,生态成熟,社区资源丰富
适用场景 适合中文用户、相对简单的自动化或爬虫任务, 尤其擅长处理需要频繁操作 DOM 或依赖浏览器上下文的场景 适合需要多种编程语言支持、广泛社区资源的企业级项目

2.3 限制条款

需要注意,根据其使用条款,DrissionPage 禁止用于违法用途、攻击骚扰、商业使用(需授权),并且使用时必须遵守目标网站的robots.txt协议。

3 harness辅助

这里进一步在harness中,验证DrissionPage打开浏览器获取特定股票的行情数据。

提示词示例如下

DrissionPage,使用chrome浏览器,在东方财富平台,获取格力电器的股价、资金流动数据。

输出结果示例如下

虽然harness经过反复尝试跑通了该示例,但初步看仅具备演示价值。

整体运行过程,不仅需要自主下载和安装DrissionPage。

harness还需要反复修改python脚本来解决运行过程中遇到的各种异常和错误。

如果实际要获取类似数据,AKShare类工具会更专业和合适。

reference


drissionpage

https://www.drissionpage.cn/

DrissionPage

https://github.com/g1879/DrissionPage

AKShare

https://akshare.akfamily.xyz/introduction.html

deepseek harness

https://www.deepseek.com/en/harness/

相关推荐
野生数据人1 小时前
日志平台运维速查表:巡检命令、阈值、参数,一张贴墙
大数据·数据库
xiaogai_gai2 小时前
物料主数据从ERP同步到电商中台:基于轻易云的编码映射与增量全量双轨实践
大数据·数据库
SelectDB2 小时前
信创适配速查手册:国产 CPU / OS 对照表、认证许可速查与部署检查项清单
大数据·数据库·数据分析
亚川楼宇自控系统数据中心厂家2 小时前
机房 3D 可视化技术:从平面监控到立体化管理的升级
大数据·数据库·人工智能
LaughingZhu2 小时前
任务在飞书创建,开发在 Orca 继续:我把飞书项目接到了 Linear
大数据·人工智能·深度学习·神经网络·飞书
SelectDB2 小时前
部署形态与存算分离速查:形态对照、配置项清单与关键命令片段
大数据·数据结构·数据库
SelectDB2 小时前
Workload Group 参数速查:排队与并发配置、CPU 软硬限切换与常见配置问题清单
大数据·数据库·数据分析
智享 AI 科技2 小时前
2026年AI私域系统怎么选?从功能到服务的全维度对比
大数据·人工智能·经验分享
mister_guo3 小时前
Elasticsearch:原理、Docker 安装与常用命令
大数据·运维·elasticsearch