admin管理员组

文章数量:1130349

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


一用Selenium,你是不是就血压就飙升?这感觉我懂。

每次配浏览器驱动,都像在开盲盒;写起代码来,光是找一个元素就得写长长长长长的一串;还有那说不清道不明的等待问题,分分钟让你戴上“痛苦面具”。

如果你也受够了这些,那么恭喜你,今天就为大家带来一个能彻底摆脱这些烦恼的现代化解决方案--DrissionPage。它集简洁API与高效性能于一身,让网页自动化变得前所未有的轻松!

下面我们将正式开启今天的工具学习,内容包括以下4个方面:

DrissionPage的介绍核心功能优势与Selenium使用对比、以及DrissionPage的使用教程,希望对你有所帮助!

01 什么是DrissionPage?

DrissionPage是一个基于python的网页web自动化工具,是一个国人基于Selenium和Requests开发而成。Selenium控制浏览器的对象叫WebDriver,Requests用于收发数据包的对象叫Session。Drission(dri+ssion)就是对它们组合的一个尝试。

它融合了浏览器控制与高效数据请求的双重优势,通过自研内核和简洁API设计,为开发者提供了灵活且高效的解决方案,尤其在动态网页抓取和复杂交互场景中表现突出。

02 DrissionPage的核心功能优势

DrissionPage的核心功能优势大致可以概括为一句话:一个工具,两种模式,无限可能。它巧妙地打通了浏览器操作和网络请求之间的壁垒。

核心特性主要包含以下几个方面:

  • 模式无缝切换:可在浏览器驱动与会话请求间自由切换,动态内容用浏览器渲染,静态数据用高速请求抓取;

  • 简化操作接口:统一自动化与抓取流程,ele() 和 eles() 方法支持多种选择器,学习成本直接腰斩;

  • 高度灵活定制:支持自定义请求头、代理和超时设置,能应对各种反爬机制;

  • 内置实用功能:自动等待元素加载、智能重试机制,确保动态网页操作稳定性;

  • 多标签页协同:无需切换即可操作非激活标签页,实现真正并行处理,工作效率翻倍。

03 DrissionPage VS Selenium

DrissionPage 与 Selenium对比如下:

下面带大家更直观的体验一下:

跳转到一个标签页

# 使用 selenium
driver.switch_to.window(driver.window_handles[0])

# 使用 DrissionPage:
tab = page.get_tab(1)

按文本选择下拉列表​​​​​​​

# 使用 selenium:
from selenium.webdriver.support.select import Select
select_element = Select(element)
select_element.select_by_visible_text('text')

# 使用 DrissionPage
element.select('text')

拖拽一个元素​​​​​​​

# 使用 selenium:
ActionChains(driver).drag_and_drop(ele1, ele2).perform()

# 使用 DrissionPage:
ele1.drag_to(ele2)

滚动窗口到底部(保持水平滚动条不变)​​​​​​​

# 使用 selenium:
driver.execute_script(
"window.scrollTo(document.documentElement.scrollLeft, document.body.scrollHeight);")

# 使用 DrissionPage:
page.scroll.to_bottom()

设置 headless 模式​​​​​​​

# 使用 selenium:
options = webdriver.ChromeOptions()
options.add_argument("--headless")

# 使用 DrissionPage:
set_headless(True)

获取伪元素内容​​​​​​​

# 使用 selenium:
text = webdriver.execute_script('return window.getComputedStyle(arguments[0], "::after").getPropertyValue("content");'
, element)

# 使用 DrissionPage:
text = element.pseudo.after

用 xpath 直接获取属性或文本节点(返回文本)​​​​​​​

# 使用 selenium:
相当复杂

# 使用 DrissionPage:
class_name = element('xpath://div[@id="div_id"]/@class')
text = element('xpath://div[@id="div_id"]/text()[2]')

04 DrissionPage使用

安装步骤

第①步:运行环境要求

  • 操作系统:Windows、Linux 和 Mac

  • Python 版本:3.6 及以上

  • 支持:Chromium 内核如 Chrome、Edge 等主流浏览器

第②步:安装 DrissionPage 库

按下 Win + R 组合键,打开【运行】窗口,输入 cmd 后回车,输入以下命令:

pip install DrissionPage

第③步:快速启动使用

它启动的方式简单,方便快捷​​​​​​​

from DrissionPage import ChromiumPage# 直接使用就能打开网页
page = ChromiumPage()
page.get("
https://www.baidu/")

提示:DrissionPage 能自动管理浏览器驱动,无需手动下载配置,真正开箱即用。

使用示例

操控浏览器

用 ChromiumPage 对象可以轻松实现浏览器的自动化操作,比如登录、填写表单等。​​​​​​​

from DrissionPage import ChromiumPage

page = ChromiumPage()
page.get('https://gitee/login')  # 打开登录页面# 找到账号输入框
user_login = page.ele('#user_login')
user_login.input('您的账号')  # 输入账号
# 找到密码输入框user_password = page.ele('
#user_password')user_password.input('您的密码')  
# 输入密码
# 找到登录按钮并点击
login_button = page.ele('@value=登 录')
login_button.click()

爬取数据

用 SessionPage 对象可以高效地爬取数据,不用和网页进行复杂的交互。​​​​​​​

from DrissionPage import SessionPage

page = SessionPage()
for i in range(1, 4):  # 循环访问三页    

page.get(f'https://gitee/explore/all?page={i}')  # 打开每一页

# 找到所有项目链接元素links = page.eles('.title project - namespace - path')
for link in links:  
# 遍历每个链接元素
print(link.text, link.link)  
# 打印链接的文本和地址

页面分析

用 WebPage 对象可以在浏览器模式和数据包模式之间灵活切换,适应不同的分析需求。​​​​​​​

from DrissionPage import WebPage

page = WebPage()
page.get('https://gitee/explore/all')  # 打开页面page.change_mode()  # 切换模式

# 找到项目列表元素items = page.ele('.ui relaxed divided items explore - repo__list').eles('.item')
for item in items:  
# 遍历每个项目
print(item('t:h3').text)  
# 打印项目标题
print(item('.project - desc mb - 1').text)  
# 打印项目描述

05 总结

DrissionPage 语法简洁,使用方便,底层基于 CDP 协议,拥有较强的反检测机制,目前不需要做任何反检测的操作就可以绕过国内外绝大多数的网站自动化检测,包含但不限于 (xx 验证码、某数、5s)。 还有很多强大的功能因文章有限没有深入介绍,感兴趣的童鞋可以留言,小编考虑后续再出一期关于DrissionPage的高阶使用技巧!

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


一用Selenium,你是不是就血压就飙升?这感觉我懂。

每次配浏览器驱动,都像在开盲盒;写起代码来,光是找一个元素就得写长长长长长的一串;还有那说不清道不明的等待问题,分分钟让你戴上“痛苦面具”。

如果你也受够了这些,那么恭喜你,今天就为大家带来一个能彻底摆脱这些烦恼的现代化解决方案--DrissionPage。它集简洁API与高效性能于一身,让网页自动化变得前所未有的轻松!

下面我们将正式开启今天的工具学习,内容包括以下4个方面:

DrissionPage的介绍核心功能优势与Selenium使用对比、以及DrissionPage的使用教程,希望对你有所帮助!

01 什么是DrissionPage?

DrissionPage是一个基于python的网页web自动化工具,是一个国人基于Selenium和Requests开发而成。Selenium控制浏览器的对象叫WebDriver,Requests用于收发数据包的对象叫Session。Drission(dri+ssion)就是对它们组合的一个尝试。

它融合了浏览器控制与高效数据请求的双重优势,通过自研内核和简洁API设计,为开发者提供了灵活且高效的解决方案,尤其在动态网页抓取和复杂交互场景中表现突出。

02 DrissionPage的核心功能优势

DrissionPage的核心功能优势大致可以概括为一句话:一个工具,两种模式,无限可能。它巧妙地打通了浏览器操作和网络请求之间的壁垒。

核心特性主要包含以下几个方面:

  • 模式无缝切换:可在浏览器驱动与会话请求间自由切换,动态内容用浏览器渲染,静态数据用高速请求抓取;

  • 简化操作接口:统一自动化与抓取流程,ele() 和 eles() 方法支持多种选择器,学习成本直接腰斩;

  • 高度灵活定制:支持自定义请求头、代理和超时设置,能应对各种反爬机制;

  • 内置实用功能:自动等待元素加载、智能重试机制,确保动态网页操作稳定性;

  • 多标签页协同:无需切换即可操作非激活标签页,实现真正并行处理,工作效率翻倍。

03 DrissionPage VS Selenium

DrissionPage 与 Selenium对比如下:

下面带大家更直观的体验一下:

跳转到一个标签页

# 使用 selenium
driver.switch_to.window(driver.window_handles[0])

# 使用 DrissionPage:
tab = page.get_tab(1)

按文本选择下拉列表​​​​​​​

# 使用 selenium:
from selenium.webdriver.support.select import Select
select_element = Select(element)
select_element.select_by_visible_text('text')

# 使用 DrissionPage
element.select('text')

拖拽一个元素​​​​​​​

# 使用 selenium:
ActionChains(driver).drag_and_drop(ele1, ele2).perform()

# 使用 DrissionPage:
ele1.drag_to(ele2)

滚动窗口到底部(保持水平滚动条不变)​​​​​​​

# 使用 selenium:
driver.execute_script(
"window.scrollTo(document.documentElement.scrollLeft, document.body.scrollHeight);")

# 使用 DrissionPage:
page.scroll.to_bottom()

设置 headless 模式​​​​​​​

# 使用 selenium:
options = webdriver.ChromeOptions()
options.add_argument("--headless")

# 使用 DrissionPage:
set_headless(True)

获取伪元素内容​​​​​​​

# 使用 selenium:
text = webdriver.execute_script('return window.getComputedStyle(arguments[0], "::after").getPropertyValue("content");'
, element)

# 使用 DrissionPage:
text = element.pseudo.after

用 xpath 直接获取属性或文本节点(返回文本)​​​​​​​

# 使用 selenium:
相当复杂

# 使用 DrissionPage:
class_name = element('xpath://div[@id="div_id"]/@class')
text = element('xpath://div[@id="div_id"]/text()[2]')

04 DrissionPage使用

安装步骤

第①步:运行环境要求

  • 操作系统:Windows、Linux 和 Mac

  • Python 版本:3.6 及以上

  • 支持:Chromium 内核如 Chrome、Edge 等主流浏览器

第②步:安装 DrissionPage 库

按下 Win + R 组合键,打开【运行】窗口,输入 cmd 后回车,输入以下命令:

pip install DrissionPage

第③步:快速启动使用

它启动的方式简单,方便快捷​​​​​​​

from DrissionPage import ChromiumPage# 直接使用就能打开网页
page = ChromiumPage()
page.get("
https://www.baidu/")

提示:DrissionPage 能自动管理浏览器驱动,无需手动下载配置,真正开箱即用。

使用示例

操控浏览器

用 ChromiumPage 对象可以轻松实现浏览器的自动化操作,比如登录、填写表单等。​​​​​​​

from DrissionPage import ChromiumPage

page = ChromiumPage()
page.get('https://gitee/login')  # 打开登录页面# 找到账号输入框
user_login = page.ele('#user_login')
user_login.input('您的账号')  # 输入账号
# 找到密码输入框user_password = page.ele('
#user_password')user_password.input('您的密码')  
# 输入密码
# 找到登录按钮并点击
login_button = page.ele('@value=登 录')
login_button.click()

爬取数据

用 SessionPage 对象可以高效地爬取数据,不用和网页进行复杂的交互。​​​​​​​

from DrissionPage import SessionPage

page = SessionPage()
for i in range(1, 4):  # 循环访问三页    

page.get(f'https://gitee/explore/all?page={i}')  # 打开每一页

# 找到所有项目链接元素links = page.eles('.title project - namespace - path')
for link in links:  
# 遍历每个链接元素
print(link.text, link.link)  
# 打印链接的文本和地址

页面分析

用 WebPage 对象可以在浏览器模式和数据包模式之间灵活切换,适应不同的分析需求。​​​​​​​

from DrissionPage import WebPage

page = WebPage()
page.get('https://gitee/explore/all')  # 打开页面page.change_mode()  # 切换模式

# 找到项目列表元素items = page.ele('.ui relaxed divided items explore - repo__list').eles('.item')
for item in items:  
# 遍历每个项目
print(item('t:h3').text)  
# 打印项目标题
print(item('.project - desc mb - 1').text)  
# 打印项目描述

05 总结

DrissionPage 语法简洁,使用方便,底层基于 CDP 协议,拥有较强的反检测机制,目前不需要做任何反检测的操作就可以绕过国内外绝大多数的网站自动化检测,包含但不限于 (xx 验证码、某数、5s)。 还有很多强大的功能因文章有限没有深入介绍,感兴趣的童鞋可以留言,小编考虑后续再出一期关于DrissionPage的高阶使用技巧!

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​

本文标签: 都在这款爬出测试工具