# python的网页自动化工具DrissionPage

*Published:* 2024-09-21
*Author:* 飞翔001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2024年9月20日，已超过 180天没有更新



[DrissionPage](https://www.xarjtc.com/tag/drissionpage "查看DrissionPage此标签更多文章")® 是一个基于 [python](https://www.xarjtc.com/tag/python "查看python此标签更多文章") 的网页自动化工具。它既能控制浏览器，也能收发数据包，还能把两者合而为一。可兼顾浏览器自动化的便利性和 requests 的高效率。它功能强大，内置无数人性化设计和便捷功能。它的语法简洁而优雅，代码量少，对新手友好。

**特性**

🎇强大的自研内核​

本库采用全自研的内核，内置了无数实用功能，对常用功能作了整合和优化，对比 selenium，有以下优点：

不依赖 webdriver，无需下载驱动。不依赖 webdriver，可以避免很多机器人检测。

运行速度更快

可以跨 iframe 查找元素，无需切入切出

把 iframe 看作普通元素，获取后可直接在其中查找元素，逻辑更清晰

可以同时操作浏览器中的多个标签页，即使标签页为非激活状态，无需切换

可以直接读取浏览器缓存来保存图片，无需用 GUI 点击另存

可以对整个网页截图，包括视口外的部分(90以上版本浏览器支持)

可处理非open状态的 shadow-root

DrissionPage 是一个基于 python 的网页自动化工具。

它既能控制浏览器，也能收发数据包，还能把两者合而为一。

可兼顾浏览器自动化的便利性和 requests 的高效率。

它功能强大，内置无数人性化设计和便捷功能。

它的语法简洁而优雅，代码量少，对新手友好。

**🎇 亮点功能​**

除了以上优点，本库还内置了无数人性化设计。

极简的语法规则。集成大量常用功能，代码更优雅

定位元素更加容易，功能更强大稳定

无处不在的等待和自动重试功能。使不稳定的网络变得易于控制，程序更稳定，编写更省心

提供强大的下载工具。操作浏览器时也能享受快捷可靠的下载功能

允许反复使用已经打开的浏览器。无需每次运行从头启动浏览器，调试超方便

使用 ini 文件保存常用配置，自动调用，提供便捷的设置，远离繁杂的配置项

内置 lxml 作为解析引擎，解析速度成几个数量级提升

使用 POM 模式封装，可直接用于测试，便于扩展

高度集成的便利功能，从每个细节中体现

还有很多细节，这里不一一列举，欢迎实际使用中体验

**运行环境**

操作系统：Windows、Linux 和 Mac。

python 版本：3.6 及以上

支持浏览器：Chromium 内核(如 Chrome 和 Edge)

**操作浏览器的基本逻辑如下：**

创建浏览器对象，用于启动或接管浏览器

获取一个 Tab 对象

使用 Tab 对象访问网址

使用 Tab 对象获取标签页内需要的元素对象

使用元素对象进行交互

除此以外，还能执行更为复杂的操作，如执行 js 代码、监听网络数据、下载文件等。

**官方网站：https://drissionpage.cn/**

github地址：https://github.com/g1879/DrissionPage

Gitee地址：https://gitee.com/g1879/DrissionPage

gitcode地址：https://gitcode.com/g1879/DrissionPage

提供各种辅助功能，如代码生成助手可用图形化的界面，通过简单的点击，自动生成用于 DrissionPage 启动浏览器的配置代码。

作者： 游龙(1227141324@qq.com)

骚神工具库：https://wxhzhwxhzh.github.io/saossion\_code\_helper\_online/