当前位置: 首页 > news >正文

Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!

Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!


文章目录

  • Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!
    • 🚀 引言
    • 🌟 DrissionPage简介
    • 🛠️ 三大核心模式
      • 1. **ChromiumPage:图形化浏览器自动化**
      • 2. **WebPage:浏览器控制与数据包收发**
      • 3. **SessionPage:轻量级数据交互**
    • 📝 实战演练:ChromiumPage操作示例
      • 安装DrissionPage
      • 初始化ChromiumPage
      • 打开页面
      • 查找元素并输入
      • 点击登录按钮
      • 等待元素加载
      • 获取欢迎信息
      • 关闭浏览器
    • 🎯 DrissionPage的优势
    • 🌐 结语


🚀 引言

在数字化时代,数据的获取和处理变得越来越重要。Python,作为一门强大的编程语言,其在网页自动化领域的应用也日益广泛。今天,我们要介绍一个全新的Python库——DrissionPage,它将彻底改变你对浏览器自动化的认知!


🌟 DrissionPage简介

DrissionPage是一个基于Python的浏览器自动化库,它提供了三种访问模式:ChromiumPageWebPageSessionPage。这些模式覆盖了从图形化用户操作到数据包控制的全方位需求,让开发者能够更加灵活地应对各种网页自动化任务。

🛠️ 三大核心模式

1. ChromiumPage:图形化浏览器自动化

  • ChromiumPage是操作浏览器的页面对象,使用Chromium内核进行页面加载和交互,类似于Selenium的WebDriver。
  • 它支持页面元素的查找、点击、输入、截图等操作,适合需要图形化界面展示的网页自动化任务。

2. WebPage:浏览器控制与数据包收发

  • WebPage结合了浏览器控制和数据包的收发,可以拦截和修改网络请求,适合需要同时操作浏览器和处理数据包的复杂任务。

3. SessionPage:轻量级数据交互

  • SessionPage专用于数据包收发,类似于Python的requests库,适合快速发送和接收数据的任务,无需渲染网页内容。

📝 实战演练:ChromiumPage操作示例

让我们通过一个详细的示例,看看如何使用ChromiumPage完成自动化登录操作:

安装DrissionPage

首先,我们需要安装DrissionPage库。在终端或命令提示符中运行以下命令:

pip install drission

初始化ChromiumPage

接下来,我们初始化ChromiumPage对象:

from drission import Drission
drission = Drission()
page = drission.use_chromium()

打开页面

使用get()方法加载一个页面:

page.get("https://example-login.com")

查找元素并输入

使用input()方法将文本输入到输入框或文本框中:

page.input("#username", "your_username")
page.input("#password", "your_password")

点击登录按钮

使用click()方法对页面中的元素进行点击操作:

page.click("#login_button")

等待元素加载

使用wait()方法等待页面元素加载完成:

page.wait('div.welcome-message')

获取欢迎信息

使用ele()方法获取元素,并打印欢迎信息:

welcome_text = page.ele('div.welcome-message').text
print("Welcome message:", welcome_text)

关闭浏览器

在完成所有操作后,使用close()方法关闭ChromiumPage,释放资源:

page.close()

🎯 DrissionPage的优势

  • 轻量级:相较于Selenium和Playwright,DrissionPage更加轻量,启动和运行速度更快。
  • 易用性:API设计简洁直观,易于学习和使用。
  • 功能强大:覆盖了从基本的网页操作到复杂的数据交互,满足各种自动化需求。

🌐 结语

DrissionPage的出现,为Python开发者在浏览器自动化领域提供了一个新的选择。它不仅简化了网页操作,还提高了开发效率。如果你正在寻找一个强大的浏览器自动化工具,DrissionPage绝对值得一试!


🔥 关注我们,获取更多Python编程技巧和最新技术动态!一起探索编程的世界,让代码改变生活!

相关文章:

Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!

Python 浏览器自动化新利器:DrissionPage,让网页操作更简单! 文章目录 Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!🚀 引言🌟 DrissionPage简介🛠️ 三大…...

Rust学习笔记_13——枚举

Rust学习笔记_10——守卫 Rust学习笔记_11——函数 Rust学习笔记_12——闭包 枚举 文章目录 枚举1. 定义1.1 无值变体1.2 有值变体1.3 枚举与泛型的结合 2. 使用2.1 和匹配模式一起使用2.2 枚举作为类型别名 3. 常用枚举类型 在Rust编程语言中,枚举(enum…...

Postgresql 格式转换笔记整理

1、数据类型有哪些 1.1 数值类型 DECIMAL/NUMERIC 使用方法 DECIMAL是PostgreSQL中的一种数值数据类型,用于存储固定精度和小数位数的数值。DECIMAL的精度是由用户指定的,可以存储任何位数的数值,而小数位数则由用户自行定义。DECIMAL类型的…...

AI开发:卷积神经网络CNN原理初识,简易例程 - 机器学习

一 、卷积神经网络是什么 (1)印象 今天说的CNN,并不是我们熟知的美国有线电视新闻网。 那什么是CNN呢? Convolutional Neural Networks, CNN)简单来说,就是用一个筛子来筛面粉的。 筛子就是卷积核&…...

详细介绍vue的递归组件(重要)

递归组件在 Vue 中是一个非常强大的概念,尤其在渲染层级结构(如树形结构、嵌套列表、评论系统等)时,能够极大地简化代码。 什么是递归组件? 递归组件就是一个组件在其模板中引用自身。这种做法通常用于渲染树形结构或…...

【单片机基础知识】基础知识(CortexM系列、STM32系统框架、存储器映射、寄存器映射)

1. CortexM系列介绍 ARM官方资料: 📎Arm Cortex-M4 Processor Datasheet.pdf📎Arm-Cortex-M7-Processor-Datasheet.pdf📎Arm Cortex-M Comparison Table_v3.pdf📎Arm Cortex-M3 Processor Datasheet.pdf 课程资料&a…...

yolov5导出命令

python export.py --weights yolov5s.pt --img-size 640 --batch-size 1 --device cpu --include onnx 关闭动态输入,cpu导出 检测onnx模型能否加载成功指令: python detect.py --weights yolov5s.onnx --dnn 终端调用detect.py检测图片命令&…...

RabbitMQ的常用术语介绍

出版商 “出版商”一词在不同的上下文中有不同的含义。一般来说,在消息传递中 发布者(也称为“生成者”)是应用程序(或应用程序实例) 发布 (生成) 消息。同一应用程序也可以使用消息 因此同时也…...

Docker魔法:用docker run -p轻松开通容器服务大门

前言 “容器”与“虚拟化”作为现代软件开发和运维中的关键概念,已经广泛应用于各个技术领域。然而,在使用 Docker 部署应用时,常常会遇到这样的问题:容器正常运行,却无法让外界访问其内部服务?即使容器内的应用顺利启动,外部无法通过浏览器或 API 进行连接。此时,doc…...

【后端面试总结】Redis过期删除策略

Redis会将每个设置了过期时间的key放入一个独立的字典中,以后会定时遍历这个字典来删除到期的key。除了定时遍历之外,它还会使用惰性策略来删除过期的key。所谓惰性策略就是在客户端访问这个key的时候,Redis对key的过期时间进行检查&#xff…...

数字图像处理(15):图像平移

(1)图像平移的基本原理:计算每个像素点的移动向量,并将这些像素按照指定的方向和距离进行移动。 (2)平移向量包括水平和垂直分量,可以表示为(dx,dy)&#xff…...

高级java每日一道面试题-2024年12月08日-JVM篇-什么是类加载器?

如果有遗漏,评论区告诉我进行补充 面试官: 什么是类加载器? 我回答: 在Java高级面试中,类加载器(ClassLoader)是一个重要的概念,它涉及到Java类的加载和初始化机制。以下是对类加载器的详细解释: 定义与作用 类加…...

JAVA子类的无参构造器中第一行的super

在 Java 中,子类的构造器是否需要显式调用 super 取决于父类(超类)的构造器。 如果父类有一个无参构造器: 如果父类有一个无参构造器,那么子类的构造器可以不显式调用 super。在这种情况下,如果子类构造器的…...

mysql程序介绍,选项介绍(常用选项,指定选项的方式,特性),命令介绍(查看,部分命令),从sql文件执行sql语句的两种方法

目录 mysql程序 介绍 选项 介绍 常用选项 指定选项的方式 ​编辑配置文件 环境变量 选项特性 指定选项 选项名 选项值 命令 介绍 查看客户端命令 tee/notee prompt source system help contents 从.sql文件执行sql语句 介绍 方式 source 从外部直接导入…...

Unity教程(十九)战斗系统 受击反馈

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…...

lanqiaoOJ 3744:小蓝的智慧拼图购物 ← pair+优先队列

【题目来源】https://www.lanqiao.cn/problems/3744/learning/【题目描述】 在小蓝的生日那天,他得到了一个由神秘人赠送的拼图游戏,每个拼图都有其特定的价值和相应的优惠券。小蓝决定要买下所有的拼图,但他希望能尽可能地节省花费。小蓝手中…...

Spring Boot教程之二十一:文件处理

Spring Boot – 文件处理 Spring Boot 是一种流行的、基于 Spring 的开源框架,用于开发强大的 Web 应用程序和微服务。由于它建立在 Spring 框架之上,因此它不仅具有 Spring 的所有功能,而且还包括某些特殊功能,例如自动配置、健康…...

【Linux】Linux的基本常识+指令

目录 1. 整体学习思维导图 2. 常见快捷键操作 3. 基本指令 pwd指令 whoami指令 ls 指令 touch指令 cd 指令 Stat 指令 mkdir 指令 alias指令 nano 指令 rmdir 和 rm 指令 man 指令手册 cp 命令 cat/echo/tac 指令 mv 指令 less 指令 head/tail 指令 date…...

Rocky Linux 9.3系统搭建Slurm环境【笔记】

实践环境:Rocky Linux 9.3 [root@m1 ~]# cat /etc/redhat-release Rocky Linux release 9.3 (Blue Onyx) [root@m1 ~]# uname -r 5.14.0-362.8.1.el9_3.x86_64 [root@m1 ~]#主机名和IP ● 控制节点m1:10.1.1.10 ● 计算节点c1:10.1.1.11 ● 计算节点c2:10.1.1.12 一、…...

原生微信小程序使用原子化tailwindcss

这里使用了第三方库来实现:https://weapp-tw.icebreaker.top/ 官方配置步骤一: https://weapp-tw.icebreaker.top/docs/quick-start/native/install 官方配置步骤二:https://weapp-tw.icebreaker.top/docs/quick-start/native/install-plugin 我下面的操作步骤跟官方步骤…...

设计程序统计共享单车使用分布数据,优化投放点位,解决市民短途出行找不到车辆出行难题。

构建一个共享单车使用分布统计与投放点位优化的商务智能示例项目,去营销化、中立化,仅用于学习与工程实践参考。一、实际应用场景描述在城市短途出行场景中,共享单车已成为重要补充:- 覆盖公交、地铁“最后一公里”- 解决 1–3 公…...

luceda ipkiss实战:利用MZI Lattice Filter实现可调谐波分复用器

1. MZI晶格滤波器基础与可调谐波分复用原理 马赫曾德干涉仪(MZI)晶格结构是集成光子学中最经典的多功能器件之一。我第一次接触这种结构时,就被它优雅的对称性和强大的可重构性所吸引。本质上,它通过级联多个MZI单元形成周期性结构…...

突破Cursor AI试用限制:技术实现与实战指南

突破Cursor AI试用限制:技术实现与实战指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial request…...

Discord审计数据流解决方案:构建高可靠事件中继与自动化处理

1. 项目概述:一个被低估的审计数据流解决方案 如果你在管理一个中等规模以上的Discord社区,或者正在开发一个需要深度集成Discord生态的机器人,那么你一定遇到过这样的痛点:如何可靠、实时地获取服务器内发生的所有关键事件&…...

Linux系统变更追踪工具whatdiditdo:实现文件级监控与审计

1. 项目概述:一个追踪系统变更的“时光机”最近在排查一个线上服务故障,问题最终定位到是某个依赖库在几天前的一次静默升级上。为了搞清楚到底是谁、在什么时候、改了什么东西,我不得不翻遍了近一周的服务器操作日志、CI/CD流水线记录和版本…...

Hotkey Detective:Windows热键冲突终极解决方案,快速定位“按键劫持“元凶

Hotkey Detective:Windows热键冲突终极解决方案,快速定位"按键劫持"元凶 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mir…...

如何通过虚拟地址查找物理地址

1 如何通过虚拟地址查找物理地址(原理与代码) 本文说明 虚拟地址(VA)到物理地址(PA) 的映射在 x86-64 Linux 上如何理解与实现,并给出可编译的示例代码。不同架构(ARM、RISC-V&#…...

性能巨兽:基于AMD EPYC 9755与RTX 5090D的UltraLAB GA660M仿真工作站深度解析

在高端制造、能源勘探和前沿科学计算领域,算力永远是稀缺资源。每一次CPU与GPU的代际更迭,都意味着仿真效率的指数级提升。今天,我们解析的这款UltraLAB GA660M241256-MBD工作站,正是集成了2026年顶级硬件技术的算力平台。它不仅是…...

手把手教你用TI TICS Pro配置LMX2594时钟芯片(附寄存器导出与SPI写入指南)

手把手教你用TI TICS Pro配置LMX2594时钟芯片(附寄存器导出与SPI写入指南) 在高速数字系统设计中,时钟信号的稳定性和精确度往往决定着整个系统的性能上限。作为射频与通信领域的工程师,我深刻体会过时钟配置失误带来的调试噩梦—…...

基于KB2040与Kailh大键的DIY宏键盘:从电路原理到3D打印全流程

1. 项目概述与核心思路 如果你和我一样,每天在电脑前要重复执行大量组合键操作,比如设计师频繁切换工具、程序员调试代码、视频剪辑师来回切时间轴,那么一个自定义的宏键盘绝对是效率神器。市面上的成品宏键盘要么键位固定,要么价…...