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

【爬虫】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()填入大写字母无法获取问题

相关文章:

  • 前端面试宝典---js垃圾回收机制
  • 大模型越狱:技术漏洞与安全挑战——从原理到防御
  • 生活实用小工具-手机号归属地查询
  • Jsp技术入门指南【十四】实现基于MySQL+JDBC+JSP数据库验证的登录界面与登录跳转功能
  • 文章记单词 | 第74篇(六级)
  • 16S18S基础知识(1)
  • OpenHarmony平台驱动开发(十七),UART
  • 【vue】脚手架
  • UniApp 微信小程序绑定动态样式 :style 避坑指南
  • 2025年6月一区SCI-不实野燕麦优化算法Animated Oat Optimization-附Matlab免费代码
  • day014-服务管理
  • SpringbBoot nginx代理获取用户真实IP
  • Mac的web服务器
  • Python解释器、REPL与脚本的区别
  • 适用于 iOS 的 开源Ultralytics YOLO:应用程序和 Swift 软件包,用于在您自己的 iOS 应用程序中运行 YOLO
  • 多因子线性回归实战
  • Spark缓存---cache方法
  • 【前端】:单 HTML 去除 Word 批注
  • 【嵌入式开发-软件定时器】
  • nginx 出现大量connect reset by peer
  • 杭勇已任常州市政协党组成员,此前任常州市委常委、秘书长
  • 孙卫东会见巴基斯坦驻华大使:支持巴印两国实现全面持久停火
  • 《蛮好的人生》:为啥人人都爱这个不完美的“大女主”
  • 秦洪看盘|交易新逻辑,银行股成A股稳定器
  • 香港暂停进口美国北达科他州一地区禽肉及禽类产品
  • 《AI×SCIENCE十大前沿观察》9:合成数据和数据基础设施