Python使用DrissionPage实现自动化处理的简单入门指南

 更新时间:2026年01月09日 08:15:54   作者:detayun  
在Python自动化领域,Selenium和Requests是两个常用工具,DrissionPage巧妙结合了两者优势,本文将带你从零开始,用10分钟掌握DrissionPage的核心用法,希望对大家有所帮助

在Python自动化领域,Selenium和Requests是两个常用工具,但各有局限。DrissionPage巧妙结合了两者优势,既能用浏览器自动化处理动态页面,又能通过HTTP请求提升效率。本文将带你从零开始,用10分钟掌握DrissionPage的核心用法。

一、DrissionPage是什么?

DrissionPage是一个混合驱动的网页自动化库,核心特点:

  • 双引擎驱动:支持Selenium(浏览器渲染)和Requests(HTTP请求)无缝切换
  • 简洁API:类似jQuery的选择器语法,操作更直观
  • 智能等待:自动处理元素加载延迟
  • 多浏览器支持:Chrome/Firefox/Edge等

适合场景:

  • 网页数据采集
  • 自动化测试
  • 表单填写
  • 文件上传/下载
  • 任何需要模拟用户操作的场景

二、快速安装

pip install DrissionPage

如果使用Selenium模式,需额外下载对应浏览器的WebDriver(如chromedriver)

三、5分钟上手基础操作

1. 初始化浏览器会话

from DrissionPage import ChromiumPage  # 以Chrome为例

# 启动浏览器(无头模式可加headless=True)
page = ChromiumPage()

# 访问网页
page.get('https://www.baidu.com')

2. 元素定位与操作

# 通过ID定位搜索框并输入内容
search_box = page.ele('#kw')  # CSS选择器语法
search_box.input('Python自动化')

# 通过文本定位按钮并点击
search_btn = page.ele('text:百度一下')
search_btn.click()

3. 获取页面数据

# 获取标题
print(page.title)

# 获取当前URL
print(page.url)

# 获取元素文本(如第一条搜索结果)
first_result = page.eles('div.result')[0].text
print(first_result)

4. 完整示例:百度搜索

from DrissionPage import ChromiumPage

# 初始化
page = ChromiumPage()
page.get('https://www.baidu.com')

# 操作
page.ele('#kw').input('DrissionPage')
page.ele('text:百度一下').click()

# 获取结果
results = page.eles('div.result c-container')
for i, result in enumerate(results[:3], 1):
    print(f"{i}. {result.text.split('\n')[0]}")

# 关闭浏览器
page.close()

四、进阶功能速览

1. 智能等待机制

# 等待元素出现(最多10秒)
element = page.wait('@div.loading', timeout=10)  # @表示CSS选择器

# 等待页面标题包含特定文本
page.wait('title:结果页面')

2. 切换窗口/iframe

# 切换到新标签页
page.switch_to.new_tab('https://example.com')

# 切换到iframe
page.switch_to.frame('iframe_id')  # 或通过索引page.switch_to.frame(0)

3. 文件上传

# 直接操作隐藏的file input
upload_input = page.ele('input[type="file"]')
upload_input.send_keys(r'C:\test\file.jpg')

4. 执行JavaScript

# 获取页面JS变量
window_width = page.run_js('return window.innerWidth')
print(f"窗口宽度: {window_width}")

# 修改页面样式
page.run_js('document.body.style.backgroundColor = "lightblue"')

五、常见问题解决

1. 元素找不到?

  • 检查选择器是否正确(推荐使用浏览器开发者工具复制CSS选择器)
  • 添加显式等待:page.wait('@selector', timeout=10)
  • 确认元素是否在iframe中

2. 如何处理登录弹窗?

# 示例:处理基本认证弹窗
page.set_auth('username', 'password')
page.get('https://example.com/protected')

3. 如何截图保存?

page.save('screenshot.png')  # 保存当前页面截图

4. 无头模式设置

# 启动时添加参数
page = ChromiumPage(headless=True)  # 无界面模式

六、学习资源推荐

  • 官方文档GitHub - DrissionPage(含完整API参考)
  • 选择器练习:使用浏览器开发者工具的Copy selector功能快速获取元素定位方式
  • 实战项目:尝试自动化登录知乎/微博等网站(注意遵守robots协议)

七、总结

DrissionPage通过统一API简化了网页自动化流程,无论是简单的数据抓取还是复杂的交互操作都能轻松应对。对于初学者,建议从以下步骤开始:

  • 掌握基础元素操作(点击/输入/获取文本)
  • 学会使用等待机制处理动态内容
  • 尝试组合多个操作完成完整流程

掌握这些核心概念后,你可以快速扩展到文件上传、自动化测试等更复杂的场景。现在打开IDE,开始你的第一个DrissionPage自动化项目吧!

到此这篇关于Python使用DrissionPage实现自动化处理的简单入门指南的文章就介绍到这了,更多相关Python DrissionPage自动化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用xpath实现图片爬取

    Python使用xpath实现图片爬取

    这篇文章主要介绍了Python使用xpath实现图片爬取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • pycharm设置python文件模板信息过程图解

    pycharm设置python文件模板信息过程图解

    这篇文章主要介绍了pycharm设置python文件模板信息过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 为python爬虫docker镜像添加nodejs环境实现方法

    为python爬虫docker镜像添加nodejs环境实现方法

    这篇文章主要为大家介绍了为python爬虫docker镜像添加nodejs环境实现方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 使用python来玩一次股票代码详解

    使用python来玩一次股票代码详解

    这篇文章主要介绍了使用python来玩一次股票代码详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2023-01-01
  • Pyqt5打开电脑摄像头进行拍照的实现示例

    Pyqt5打开电脑摄像头进行拍照的实现示例

    本文介绍了如何使用Pyqt5来控制摄像头拍照,通过构建一个简单的用户界面,我们可以实现从摄像头实时获取图像,保存图片,感兴趣的可以了解一下
    2023-08-08
  • 使用Python来批量检测并删除Word文档中的宏

    使用Python来批量检测并删除Word文档中的宏

    Word文档作为最常用的电子文档格式之一,经常被用来作为内容分享工具,在网络中或设备之间进行传输,其安全性也需要受到关注,宏是可嵌入Word文档中的一种VBA迷你程序,本文将介绍如何使用Python来批量检测并删除Word文档中的宏,保护计算机的安全,需要的朋友可以参考下
    2024-07-07
  • Django中外键使用总结

    Django中外键使用总结

    本文主要介绍了Django中外键使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 解决python写入带有中文的字符到文件错误的问题

    解决python写入带有中文的字符到文件错误的问题

    今天小编就为大家分享一篇解决python写入带有中文的字符到文件错误的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 详解PyCharm使用pyQT5进行GUI开发的基本流程

    详解PyCharm使用pyQT5进行GUI开发的基本流程

    本文主要介绍了PyCharm使用pyQT5进行GUI开发的基本流程,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • python实现自动化脚本编写

    python实现自动化脚本编写

    自动化在很多时候是很方便的,本文以修改用户名密码单元为案例,编写测试脚本。完成修改用户名密码模块单元测试,感兴趣的可以了解一下
    2021-06-06

最新评论