<摘要>
好库分享
DrissionPage 是开发的 Python 开源网页自动化库,用于控制浏览器、发送接收数据包,并将两者结合。
它是一个独立工具,不依赖Selenium的webdriver,直接操Chromium 内核浏览器。
免费开源,最新版本 4.1.1.2(2025 年 7 月 31 日发布),GitHub 星数超 11k。

DrissionPage 有什么亮点
DrissionPage 的亮点在于融合浏览器和请求的功能,自研内核让操作更快更稳定。官网强调它简化了语法,内置重试机制。下面分点总结关键亮点,并附代码示例和对比(对比 Selenium 和 Requests,前者需驱动后者无浏览器)。
自研内核,无 webdriver 依赖:直接控制浏览器,启动快,无需匹配驱动版本。
浏览器和请求融合:可切换模式,浏览器处理 JS,请求高效发包。
from DrissionPage import ChromiumPagepage = ChromiumPage()page.get('https://www.example.com')print(page.html)
对比 Selenium(需驱动):
from selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.example.com')print(driver.page_source)driver.quit()
区别:DrissionPage 无驱动,代码短;Selenium 需管理驱动。
1.跨 iframe 和 shadow DOM 定位:
无缝定位元素,无需切换上下文
from DrissionPage import ChromiumPagepage = ChromiumPage()page.get('https://example.com/iframe-page')ele = page.ele('tag:iframe').ele('id:content') # 跨 iframe
对比 Selenium:需 switch_to.frame,步骤多。
定位逻辑清晰,我用它抓取嵌套页面,减少了错误。
2.多标签管理和下载工具:
同时操作多个 tab,稳定下载文件:
from DrissionPage import ChromiumPagepage = ChromiumPage()tab = page.new_tab('https://example.com')tab.get('https://download.com/file')
下载在爬虫中常见,DrissionPage 内置工具避免中断。
3.图像截图和缓存读取:
全页截图,保存浏览器缓存图像:
from DrissionPage import ChromiumPagepage = ChromiumPage()page.get('https://example.com')page.get_screenshot(path='screenshot.png', full_page=True)
对比 Selenium:类似,但 DrissionPage 支持缓存图像直接保存。
截图在测试报告中有用,我结合它生成视觉验证。
4.lxml 解析和简化语法:
用 lxml 加速解析,定位语法简洁。
解析速度在大数据时关键,我处理HTML时,比BeautifulSoup 快。
5.无头模式和持久会话:
支持 headless,复用已开浏览器。
from DrissionPage import ChromiumOptions, ChromiumPageoptions = ChromiumOptions().headless(True)page = ChromiumPage(options)page.get('https://example.com')对比 Requests:无无头浏览器。
无头适合服务器,我用它跑定时任务,资源占用低。
其他补充功能(官网完整列出):INI 配置管理、POM 页面封装、自动等待重试、监听数据包、元素属性修改、Cookie 处理、代理设置。
整体来说,这些亮点让 DrissionPage 在技术社区易上手,代码直接测试,比纯 Selenium 轻量。
Pandas 3.0 内存优化后,能打得过 Polars 和 DuckDB 吗?