【爬虫】DrissionPage-7
官方文档:
https://www.drissionpage.cn/browser_control/get_page_info/
1. 页面信息
📌 html
- 描述:返回当前页面的 HTML 文本。
- 注意:不包含
<iframe>
元素的内容。 - 返回类型:
str
示例:
html_content = tab.html
print(html_content)
📌 json
- 描述:将请求内容解析为 JSON 格式。如果访问的 URL 返回的是
*.json
文件,浏览器会直接显示 JSON 数据,此属性可以将这些数据转换为dict
格式。 - 返回类型:
dict
示例:
json_data = tab.json
print(json_data)
📌 title
- 描述:返回当前页面的标题文本。
- 返回类型:
str
示例:
page_title = tab.title
print(page_title)
📌 user_agent
- 描述:返回当前页面的
user agent
信息。 - 返回类型:
str
示例:
user_agent_info = tab.user_agent
print(user_agent_info)
📌 save()
-
描述:将当前页面保存为文件,同时返回保存的内容。如果
path
和name
参数都为None
,则只返回内容,不保存文件。 -
参数:
参数名称 类型 默认值 说明 path
str
/Path
None
保存路径。如果为 None
且name
不为None
,则保存到当前路径。name
str
None
保存的文件名。如果为 None
且path
不为None
,则使用title
值。as_pdf
bool
False
为 True
时保存为 PDF,否则保存为 MHTML,并忽略kwargs
参数。**kwargs
多种 无 PDF 生成参数,如 landscape
,displayHeaderFooter
,printBackground
等。 -
返回类型:
类型 说明 str
当 as_pdf
为False
时返回 MHTML 文本。bytes
当 as_pdf
为True
时返回文件字节数据。
示例:
# 保存为 PDF
pdf_data = tab.save(as_pdf=True, path='path/to/save', name='page.pdf')# 保存为 MHTML
mhtml_content = tab.save(path='path/to/save', name='page.mhtml')
2. 运行结果信息
📌 url
- 描述:返回当前访问的 URL。
- 返回类型:
str
示例:
current_url = tab.url
print(current_url)
📌 tab_id
- 描述:返回当前标签页的 ID。
- 返回类型:
str
📌 states.is_loading
- 描述:返回页面是否正在加载状态。
- 返回类型:
bool
示例:
is_loading = tab.states.is_loading
print(is_loading)
📌 states.is_alive
- 描述:返回页面是否仍然可用,标签页已关闭则返回
False
。 - 返回类型:
bool
示例:
is_alive = tab.states.is_alive
print(is_alive)
📌 states.ready_state
-
描述:返回页面当前加载状态,有以下四种:
'connecting'
:网页连接中'loading'
:文档还在加载中'interactive'
:DOM 已加载,但资源未加载完成'complete'
:所有内容已完成加载
-
返回类型:
str
示例:
ready_state = tab.states.ready_state
print(ready_state)
📌 url_available
- 描述:以布尔值返回当前链接是否可用。
- 返回类型:
bool
📌 states.has_alert
- 描述:以布尔值返回页面是否存在弹出框。
- 返回类型:
bool
示例:
has_alert = tab.states.has_alert
print(has_alert)
3. 窗口信息
📌 rect.size
- 描述:以
tuple
返回页面大小,格式为(宽, 高)
。 - 返回类型:
Tuple[int, int]
示例:
page_size = tab.rect.size
print(page_size)
📌 rect.window_size
- 描述:以
tuple
返回窗口大小,格式为(宽, 高)
。 - 返回类型:
Tuple[int, int]
📌 rect.window_location
- 描述:以
tuple
返回窗口在屏幕上的坐标,左上角为(0, 0)
。 - 返回类型:
Tuple[int, int]
📌 rect.window_state
- 描述:返回窗口当前状态,有
'normal'
、'fullscreen'
、'maximized'
、'minimized'
几种。 - 返回类型:
str
示例:
window_state = tab.rect.window_state
print(window_state)
📌 rect.viewport_size
- 描述:以
tuple
返回视口大小,不含滚动条,格式为(宽, 高)
。 - 返回类型:
Tuple[int, int]
📌 rect.viewport_size_with_scrollbar
- 描述:以
tuple
返回浏览器窗口大小,含滚动条,格式为(宽, 高)
。 - 返回类型:
Tuple[int, int]
📌 rect.page_location
- 描述:以
tuple
返回页面左上角在屏幕中坐标,左上角为(0, 0)
。 - 返回类型:
Tuple[int, int]
📌 rect.viewport_location
- 描述:以
tuple
返回视口在屏幕中坐标,左上角为(0, 0)
。 - 返回类型:
Tuple[int, int]
📌 rect.scroll_position
- 描述:返回页面滚动条位置,格式为
(x, y)
。 - 类型:
Tuple[float, float]
示例:
scroll_position = tab.rect.scroll_position
print(scroll_position)
4. 配置参数信息
📌 timeout
- 描述:整体默认超时时间(秒),包括元素查找、点击、处理提示框、列表选择等需要用到超时设置的地方,都以这个数据为默认值。默认为
10
。 - 返回类型:
int
或float
示例:
default_timeout = tab.timeout
print(default_timeout)
📌 timeouts
-
描述:以字典方式返回三种超时时间(秒):
'base'
:与timeout
属性是同一个值'page_load'
:用于等待页面加载'script'
:用于等待脚本执行
-
返回类型:
dict
示例:
timeouts_info = tab.timeouts
print(timeouts_info)
输出:
{'base': 10, 'page_load': 30.0, 'script': 30.0}
📌 retry_times
- 描述:网络连接失败时的重试次数,默认为
3
。 - 返回类型:
int
📌 retry_interval
- 描述:网络连接失败时的重试等待间隔秒数,默认为
2
。 - 返回类型:
int
或float
📌 load_mode
-
描述:返回页面加载策略,有以下三种:
'normal'
:等待页面所有资源完成加载'eager'
:DOM 加载完成即停止'none'
:页面完成连接即停止
-
返回类型:
str
示例:
load_strategy = tab.load_mode
print(load_strategy)
5. Cookies 和缓存信息
📌 cookies()
-
描述:以列表方式返回 Cookies 信息。
-
参数:
参数名称 类型 默认值 说明 all_domains
bool
False
是否返回所有 Cookies,为 False
只返回当前 URL 的。all_info
bool
False
返回的 Cookies 是否包含所有信息, False
时只包含name
、value
、domain
信息。 -
返回类型:
CookiesList
(Cookies 组成的列表)
示例:
from DrissionPage import Chromiumtab = Chromium().latest_tab
tab.get('https://www.baidu.com')for cookie in tab.cookies():print(cookie)
输出:
{'domain': '.baidu.com', 'domain_specified': True, ......}
......
📌 指定返回类型
cookies().as_str()
:返回'name1=value1; name2=value2'
格式的字符串。cookies().as_dict()
:返回{name1: value1, name2: value2}
格式的字典。cookies().as_json()
:返回 JSON 格式的字符串。
说明: as_str()
和 as_dict()
都只会保留 'name'
和 'value'
字段。
示例:
cookies_str = tab.cookies().as_str()
print(cookies_str)cookies_dict = tab.cookies().as_dict()
print(cookies_dict)cookies_json = tab.cookies().as_json()
print(cookies_json)
📌 session_storage()
-
描述:用于获取
sessionStorage
信息,可获取全部或单个项。 -
参数:
参数名称 类型 默认值 说明 item
str
None
要获取的项目,为 None
则返回全部项目组成的字典。 -
返回类型:
类型 说明 dict
item
参数为None
时返回所有项目。str
指定 item
时返回该项目内容。
示例:
session_storage_info = tab.session_storage()
print(session_storage_info)session_storage_item = tab.session_storage(item='key_name')
print(session_storage_item)
📌 local_storage()
-
描述:用于获取
localStorage
信息,可获取全部或单个项。 -
参数:
参数名称 类型 默认值 说明 item
str
None
要获取的项目,为 None
则返回全部项目组成的字典。 -
返回类型:
类型 说明 dict
item
参数为None
时返回所有项目。str
指定 item
时返回该项目内容。
示例:
local_storage_info = tab.local_storage()
print(local_storage_info)local_storage_item = tab.local_storage(item='key_name')
print(local_storage_item)
相关文章:
【爬虫】DrissionPage-7
官方文档: https://www.drissionpage.cn/browser_control/get_page_info/ 1. 页面信息 📌 html 描述:返回当前页面的 HTML 文本。注意:不包含 <iframe> 元素的内容。返回类型:str 示例: html_co…...

新浪《经济新闻》丨珈和科技联合蒲江政府打造“数字茶园+智能工厂+文旅综合体“创新模式
5月14日,新浪网《经济新闻》频道专题报道珈和科技在第十四届四川国际茶业博览会上的精彩亮相,并深度聚焦我司以数字技术赋能川茶产业高质量发展创新技术路径,及在成都市“茶业建圈强链”主题推介会上,珈和科技与蒲江县人民政府就智…...
git 撤销最近的几次push
要实现将远程仓库回退到最近5次push之前的状态,同时保留本地改动,可以按照以下步骤操作: 一、本地分支回退(保留改动) # 1. 查看提交历史确认要回退的提交点 git log --oneline# 2. 回退到5次提交前的状态࿰…...
水滴前端面经及参考答案
盒模型是什么,标准盒模型和 IE 盒模型有什么区别? 盒模型是 CSS 中一个基础概念,它描述了元素在页面中所占的空间大小。每个元素都可以看作是一个矩形盒子,从内到外由内容区(content)、内边距(padding)、边框(border)和外边距(margin)组成。 标准盒模型的宽度和高…...
React 第四十五节 Router 中 useHref() Hook的使用详解及注意事项
前言 React Router 中的 useHref 是一个用于生成完整 URL 路径的钩子, 它可以将相对路径解析为绝对路径,并确保在不同路由层级中正确工作。 它常用于自定义导航组件或需要手动构建链接的场景。 一、useHref核心用途 解析相对路径:自动将相…...

50、js 中var { ipcRenderer } = require(‘electron‘);是什么意思?
在 JavaScript 中,var { ipcRenderer } require(‘electron’); 这行代码的含义是: 1. require(‘electron’) 这是 Node.js 的模块引入语法,用于加载 Electron 的核心模块。electron 是 Electron 框架的主模块,提供了构建桌面…...
LeetCode 438. 找到字符串中所有字母异位词 | 滑动窗口与字符计数数组解法
文章目录 问题描述核心思路:滑动窗口 字符计数数组1. 字符计数数组2. 滑动窗口 算法步骤完整代码实现复杂度分析关键点总结类似问题 问题描述 给定两个字符串 s 和 p,要求找到 s 中所有是 p 的**字母异位词(Anagram)**的子串的起…...
@RequestParam 和 @RequestBody、HttpServletrequest 与HttpServletResponse
在Java Web开发中,RequestParam、RequestBody、HttpServletRequest 和 HttpServletResponse 是常用的组件,它们用于处理HTTP请求和响应。下面分别介绍它们的使用场景和使用方法: 1. RequestParam RequestParam 是Spring MVC框架中的注解&am…...

计算机底层的多级缓存以及缓存带来的数据覆盖问题
没有多级缓存的情况 有多级缓存的情况 缓存带来的操作覆盖问题 锁总线带来的消耗太大了。...

SpringBoot-1-入门概念介绍和第一个Spring Boot项目
文章目录 1 开发JAVA EE应用1.1 EJB1.2 Spring框架1.2.1 IoC(Inversion of Control)控制反转1.2.2 DI(Dependency Injection)依赖注入1.2.3 AOP面向切面编程1.3 Spring Boot1.4 Spring Cloud框架1.5 开发工具2 创建Spring Boot项目2.1 在线项目生成向导2.2 使用IDEA导入项目2.3…...
服务器多用户共享Conda环境操作指南——Ubuntu24.02
1. 使用阿里云镜像下载 Anaconda 最新版本 wget https://mirrors.aliyun.com/anaconda/archive/Anaconda3-2024.02-1-Linux-x86_64.sh bug解决方案 若出现:使用wget在清华镜像站下载Anaconda报错ERROR 403: Forbidden. 解决方案:wget --user-agent“M…...

基于FPGA的电子万年历系统开发,包含各模块testbench
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于FPGA的电子万年历系统开发,包含各模块testbench。主要包含以下核心模块: 时钟控制模块:提供系统基准时钟和计时功能。 日历计算模块:…...
Leetcode刷题 | Day63_图论08_拓扑排序
一、学习任务 拓扑排序代码随想录 二、具体题目 1.拓扑排序117. 软件构建 【题目描述】 某个大型软件项目的构建系统拥有 N 个文件,文件编号从 0 到 N - 1,在这些文件中,某些文件依赖于其他文件的内容,这意味着如果文件 A 依…...

MySQL 可观测性最佳实践
MySQL 简介 MySQL 是一个广泛使用的开源关系型数据库管理系统(RDBMS),以其高性能、可靠性和易用性而闻名,适用于各种规模的应用,从小型网站到大型企业级系统。 监控 MySQL 指标是维护数据库健康、优化性能和确保数据…...
系统性能分析基本概念(3) : Tuning Efforts
系统性能调优(Tuning Efforts)是指通过优化硬件、软件或系统配置来提升性能,减少延迟、提高吞吐量或优化资源利用率。以下是系统性能调优的主要努力方向,涵盖硬件、操作系统、应用程序和网络等多个层面,结合实际应用场…...
OceanBase数据库全面指南(函数篇)函数速查表
文章目录 一、数学函数1.1 基本数学函数1.2 三角函数二、字符串函数2.1 基本字符串函数2.2 高级字符串处理函数三、日期时间函数3.1 基本日期时间函数3.2 日期时间计算函数四、聚合函数4.1 常用聚合函数4.2 分组聚合4.3 高级聚合函数五、条件判断函数5.1 基本条件函数5.2 CASE表…...
SpringBoot 对象转换 MapStruct
文章目录 工作原理核心优势为什么不使用 BeanUtils使用步骤添加依赖定义实体类和VO类定义映射接口测试数据 参考 工作原理 基于 Java 的 JSR 269 规范,该规范允许在编译期处理注解,也就是 Java 注解处理器。MapStruct 通过定义的注解处理器,…...
计算机网络——Session、Cookie 和 Token
在 Web 开发中,Session、Cookie 和 Token 是实现用户会话管理和身份验证的核心技术。它们既有联系,也有明显区别。以下从定义、原理、联系、区别和应用场景等方面详细解析。 一、基本定义与原理 1. Cookie 定义: 是浏览器存储在客户端的小…...

01-jenkins学习之旅-window-下载-安装-安装后设置向导
1 jenkins简介 百度百科介绍:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。 [1] Jenkins官网地址 翻译&…...
Spark,SparkSQL操作Mysql, 创建数据库和表
以下是使用 Spark SQL 在 MySQL 中创建数据库和表的步骤(基于 Scala API): 1. 准备工作 - 添加 MySQL 驱动依赖 同前所述,需在 Spark 环境中引入 MySQL Connector JAR 包(如 mysql-connector-java-8.0.33.jar &#…...
AttributeError: module ‘cv2.dnn‘ has no attribute ‘DictValue‘错误解决方法
源代码如下: # 读取图像 import cv2 im cv2.imread("./test.png", 1) # 1表示3通道彩色,0表示单通道灰度 cv2.imshow("test", im) # 在test窗口中显示图像 print(type(im)) # 打印数据类型 print(im.shape) # 打印图像尺寸 cv2.wai…...
HarmonyOS 鸿蒙应用开发基础:@Watch装饰器详解及与@Monitor装饰器对比分析
在鸿蒙系统的开发中,状态管理和组件之间的通信是至关重要的部分。为此,鸿蒙提供了多种装饰器来帮助开发者监听和处理数据变化。今天我们将深入探讨Watch装饰器,并与新的状态管理组件V2中的Monitor装饰器进行对比。 Watch装饰器详解 基本概念…...
机器人拖动示教控制
机器人拖动示教控制 机器人拖动视角控制与轨迹记录 1. 知识目标 体验ES机器人拖动视角操作体验ES机器人拖动轨迹记录 2. 技能目标 掌握ES机器人拖动视角操作掌握ES机器人拖动轨迹记录 3. ES机器人拖动视角操作 3.1 操作步骤 点击“拖动视角”按钮长按“启用”键约3秒进入…...

免费开放试乘体验!苏州金龙自动驾驶巴士即将上线阳澄数谷
近日,苏州自动驾驶巴士线路——阳澄数谷示范线正式上线,即日起向全民免费开放试乘体验! 在苏州工业园区地铁3号线倪浜•阳澄数谷站外,一辆辆黑、白配色的小巴正在道路上有条不紊地行驶。与普通公交不同的是,小巴造型奇…...
matlab加权核范数最小化图像去噪
加权核范数最小化(Weighted Nuclear Norm Minimization, WNNM)是一种有效的图像去噪方法,它通过最小化加权核范数来促进图像的低秩近似,同时保留图像的边缘和细节信息。这种方法在去除噪声的同时,能够较好地保留图像的…...
docker容器暴露端口的作用
Docker 镜像中**暴露的端口(通过 EXPOSE 指令声明)**主要有以下作用和意义: 1. 文档化作用(Documentation) 显式声明容器内部服务监听的端口,告知用户或开发者该镜像提供的服务需要通过哪些端口通信。例如…...

每日Prompt:像素风格插画
提示词 像素风格插画,日式漫画脸,画面主体为一位站在路边的男孩,人物穿着黑色冲锋衣,手里拿着手机,男孩靠坐在机车旁边,脚边依偎着一只带着小摩托车头盔的小小猫,背景是雨中,身旁停…...

Windows逆向工程提升之二进制分析工具:HEX查看与对比技术
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 十六进制查看工具 应用于逆向工程的知识点 编辑 二进制对比工具 应用于逆向工程的知识点 十六进制查看工具 十六进制查看器是逆向工程的基础工具,它可以以十六进制格式…...
Android10如何设置ro.debuggable=1?
说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 目录 一、背景 二、如何解决? 三、操作步骤 一、背景 Android 10 开始的限制:ro.debuggable 是只读属性 从 …...

2024游戏安全白皮书:对抗激烈!PC游戏外挂功能数增长超149%,超85%移动外挂为定制挂(附获取方式)
2024 年,中国游戏市场实际销售收入达 3257.83 亿元,同比增长 7.53%;用户规模 6.74 亿人,同比增长 0.94%,再创新高。这份庞大的数据背后,更是对安全防线实力的严峻拷问。 在广东省游戏产业协会的指导下&…...