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

【爬虫】DrissionPage-2

之前的三个对象是4.0版本,看到的是网上大佬们网上的文章,因为看到官网更新了4.1,我觉得有必要了解一下:文档地址:💥 4.1 功能介绍 | DrissionPage官网

点击链接看官网就行,下面一样的。

4.1 的最主要变化在于用 Chromium对象 替代 ChromiumPageWebPage对象。

之前的Page对象不足:

  • 它是浏览器和一个标签页的合体,在概念上不容易理解
  • 它在管理标签页的开关、查找时候容易造成混淆
  • 它代码结构臃肿,不利于后续功能开发

在 4.1,刻意淡化了 Page 对象的存在感,而改用Chromium对象作为程序入口。

由于已有大量项目使用ChromiumPageWebPage进行开发,这两个对象仍然保留,功能不会有太大变化。

 所以之前的也行。但是了解一下新出的Chromium对象

Chromium对象 

连接浏览器 

from DrissionPage import Chromiumbrowser = Chromium()

标签页操作

from DrissionPage import Chromiumbrowser = Chromium()
tab1 = browser.latest_tab  # 获取最后激活的标签页对象
tab2 = browser.get_tab(title='DrissionPage')  # 获取指定标签页
tab3 = browser.new_tab()  # 新建标签页
browser.activate_tab(tab2)  # 将tab2提到最前面
tab1.close()  # 关闭标签页

浏览器操作 

from DrissionPage import Chromiumbrowser = Chromium()
browser.set.cookies({'abc': '123'})  # 设置cookies
browser.set.download_path('C:\\tmp')  # 设置下载路径
# 更多详见相关章节

api的调整

WebPageTab改名为MixTab
SessionPage、ChromiumPage和WebPage初始化时删除timeout提示,以后会废弃
activate_tab()取代set.tab_to_front()
所有对象增加find()方法,用于同时匹配多个定位符
页面对象增加console属性,可读取控制台信息
Frame 对象增加set.property()、set.style()、link
Tab 对象的close()方法增加others参数
quit()增加del_data参数
cookies()删除as_dict参数,增加as_dict()、as_json和as_str()方法
浏览器页面和元素对象的s_ele()和s_eles()方法增加tiemout参数
浏览器页面和元素对象增加rect.scroll_position属性
元素对象增加get_frame()方法
元素对象增加timeout属性
parent()和 shadow-root 内查找方法增加timeout参数
动作链删除db_click(),各点击方法增加times参数
wait.new_tab()增加curr_tab参数
滚动增加scroll()方法
ChromiumOptions增加new_env()方法,ini 文件增加new_env参数,用于指定必须用新环境
ChromiumOptions增加is_headless属性
auto_port()方法删除tmp_path参数
wait.alert_closed()增加timeout参数

行为变化

Chromium只返回MixTab类型的标签页对象
ChromiumFrame对象默认改为单例
MixTab和MixPage的post()方法必返回Response对象
部分等待方法会返回调用者,方便链式操作
元素对象各种动作返回元素本身,便于链式操作
打印NoneElement改成详细信息
src()方法可获取<link>指向的文件内容
录像改为 H.265 编码
shadow_root属性增加等待附加到元素(超时 10 秒)
set.cookies()忽略过期 cookie
timeout属性不再接受赋值

 优化和问题修复

优化连接浏览器失败报错
优化css_path
修复new_tab()在访客模式和隐私模式的问题
修复 Frame 对象滚动填入tuple定位符报错问题
修复states.is_displayed有些情况下不正确问题
修复元素link属性不正确的问题
修复 shadow-root 内用 css 找元素的一个问题
修复异域<iframe>内元素屏幕坐标不准问题
修复new_tab=True时下载路径不正确问题
修复attr()填入大写字母无法获取问题

http://www.xdnf.cn/news/6237.html

相关文章:

  • 《低代码AI革命:技术平权的曙光还是数字封建的陷阱?》
  • 鸿蒙OSUniApp 制作动态加载的瀑布流布局#三方框架 #Uniapp
  • 2025 年主流 Java 框架解析与实践:构建高性能 Web 应用
  • Go语言八股之Mysql基础详解
  • 刷题记录(4)数组元素相关操作
  • 【网络实验】-BGP-EBGP的基本配置
  • 【CTFShow】Web入门-信息搜集
  • Python 接入DeepSeek
  • Redis持久化存储
  • 软件测试--入门
  • unity 鼠标更换指定图标
  • MongoDB 的核心概念(文档、集合、数据库、BSON)是什么?
  • 如何选择合适的企业级商城系统前端状态管理方案?
  • 【NLP 困惑度解析和python实现】
  • 并查集原理及实现:路径压缩,按秩合并
  • 【AAAI 2025】 Local Conditional Controlling for Text-to-Image Diffusion Models
  • 《P2345 [USACO04OPEN] MooFest G》
  • 深度学习Dropout实现
  • Linux 内核 IPv4 协议栈中的协议注册机制解析
  • 在 Angular 中, `if...else if...else`
  • 默认打开程序配置错误怎么办?Windows 默认打开文件类型设置
  • 一致性哈希
  • 数据结构:ArrayList简单实现与常见操作实例详解
  • C#高级编程:加密解密
  • 自动化测试避坑指南:5大常见问题与应对策略
  • Java面向对象三大特性深度解析
  • Pass-the-Hash攻击原理与防御实战指南
  • 进程间通信(Windows事件)
  • 【教程】Docker方式本地部署Overleaf
  • 内存划分包括 Flash存储器、SRAM 和 外设寄存器