【爬虫】DrissionPage-7

news2025/5/23 18:06:24

官方文档:
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()
  • 描述:将当前页面保存为文件,同时返回保存的内容。如果 pathname 参数都为 None,则只返回内容,不保存文件。

  • 参数

    参数名称类型默认值说明
    pathstr / PathNone保存路径。如果为 Nonename 不为 None,则保存到当前路径。
    namestrNone保存的文件名。如果为 Nonepath 不为 None,则使用 title 值。
    as_pdfboolFalseTrue 时保存为 PDF,否则保存为 MHTML,并忽略 kwargs 参数。
    **kwargs多种PDF 生成参数,如 landscape, displayHeaderFooter, printBackground 等。
  • 返回类型

    类型说明
    stras_pdfFalse 时返回 MHTML 文本。
    bytesas_pdfTrue 时返回文件字节数据。

示例

# 保存为 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
  • 返回类型intfloat

示例

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
  • 返回类型intfloat
📌 load_mode
  • 描述:返回页面加载策略,有以下三种:

    • 'normal':等待页面所有资源完成加载
    • 'eager':DOM 加载完成即停止
    • 'none':页面完成连接即停止
  • 返回类型str

示例

load_strategy = tab.load_mode
print(load_strategy)

5. Cookies 和缓存信息
📌 cookies()
  • 描述:以列表方式返回 Cookies 信息。

  • 参数

    参数名称类型默认值说明
    all_domainsboolFalse是否返回所有 Cookies,为 False 只返回当前 URL 的。
    all_infoboolFalse返回的 Cookies 是否包含所有信息,False 时只包含 namevaluedomain 信息。
  • 返回类型CookiesList(Cookies 组成的列表)

示例

from DrissionPage import Chromium

tab = 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 信息,可获取全部或单个项。

  • 参数

    参数名称类型默认值说明
    itemstrNone要获取的项目,为 None 则返回全部项目组成的字典。
  • 返回类型

    类型说明
    dictitem 参数为 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 信息,可获取全部或单个项。

  • 参数

    参数名称类型默认值说明
    itemstrNone要获取的项目,为 None 则返回全部项目组成的字典。
  • 返回类型

    类型说明
    dictitem 参数为 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2384063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新浪《经济新闻》丨珈和科技联合蒲江政府打造“数字茶园+智能工厂+文旅综合体“创新模式

5月14日&#xff0c;新浪网《经济新闻》频道专题报道珈和科技在第十四届四川国际茶业博览会上的精彩亮相&#xff0c;并深度聚焦我司以数字技术赋能川茶产业高质量发展创新技术路径&#xff0c;及在成都市“茶业建圈强链”主题推介会上&#xff0c;珈和科技与蒲江县人民政府就智…

50、js 中var { ipcRenderer } = require(‘electron‘);是什么意思?

在 JavaScript 中&#xff0c;var { ipcRenderer } require(‘electron’); 这行代码的含义是&#xff1a; 1. require(‘electron’) 这是 Node.js 的模块引入语法&#xff0c;用于加载 Electron 的核心模块。electron 是 Electron 框架的主模块&#xff0c;提供了构建桌面…

计算机底层的多级缓存以及缓存带来的数据覆盖问题

没有多级缓存的情况 有多级缓存的情况 缓存带来的操作覆盖问题 锁总线带来的消耗太大了。

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…

基于FPGA的电子万年历系统开发,包含各模块testbench

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于FPGA的电子万年历系统开发,包含各模块testbench。主要包含以下核心模块&#xff1a; 时钟控制模块&#xff1a;提供系统基准时钟和计时功能。 日历计算模块&#xff1a…

MySQL 可观测性最佳实践

MySQL 简介 MySQL 是一个广泛使用的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;以其高性能、可靠性和易用性而闻名&#xff0c;适用于各种规模的应用&#xff0c;从小型网站到大型企业级系统。 监控 MySQL 指标是维护数据库健康、优化性能和确保数据…

01-jenkins学习之旅-window-下载-安装-安装后设置向导

1 jenkins简介 百度百科介绍&#xff1a;Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。 [1] Jenkins官网地址 翻译&…

免费开放试乘体验!苏州金龙自动驾驶巴士即将上线阳澄数谷

近日&#xff0c;苏州自动驾驶巴士线路——阳澄数谷示范线正式上线&#xff0c;即日起向全民免费开放试乘体验&#xff01; 在苏州工业园区地铁3号线倪浜•阳澄数谷站外&#xff0c;一辆辆黑、白配色的小巴正在道路上有条不紊地行驶。与普通公交不同的是&#xff0c;小巴造型奇…

每日Prompt:像素风格插画

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

Windows逆向工程提升之二进制分析工具:HEX查看与对比技术

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 十六进制查看工具 应用于逆向工程的知识点 ​编辑 二进制对比工具 应用于逆向工程的知识点 十六进制查看工具 十六进制查看器是逆向工程的基础工具&#xff0c;它可以以十六进制格式…

2024游戏安全白皮书:对抗激烈!PC游戏外挂功能数增长超149%,超85%移动外挂为定制挂(附获取方式)

2024 年&#xff0c;中国游戏市场实际销售收入达 3257.83 亿元&#xff0c;同比增长 7.53%&#xff1b;用户规模 6.74 亿人&#xff0c;同比增长 0.94%&#xff0c;再创新高。这份庞大的数据背后&#xff0c;更是对安全防线实力的严峻拷问。 在广东省游戏产业协会的指导下&…

12kV 环保气体绝缘交流金属封闭开关设备现场交流耐压试验规范

范围 本文件规定了12kV环保气体绝缘交流金属封闭开关设备现场交流耐压试验的被试设备及试验接线、试验条件、试验步骤、试验判据及异常处理方法。 本文件适用于12kV环保气体绝缘交流金属封闭开关设备现场交流耐压试验&#xff0c;其他气体绝缘交流金属封闭开关设备可参照执行。…

位图算法——判断唯一字符

这道题有多种解法&#xff0c;可以创建hash数组建立映射关系判断&#xff0c;但不用新的数据结构会加分&#xff0c;因此我们有“加分”办法——用位图。 我们可以创建一个整型变量&#xff08;32位&#xff09;而一共才26个字母&#xff0c;所以我们只要用到0-25位即可&#…

【UE5】环形菜单教程

效果 步骤 1. 下载图片资源&#xff1a;百度网盘 请输入提取码 提取码:fjjx 2. 将图片资源导入工程&#xff0c;如下 3. 新建3个控件蓝图&#xff0c;这里分别命名为“WBP_CircularMenu”、“WBP_Highlight”、“WBP_Icon” 4. 打开“WBP_Icon”&#xff0c;设置“所需” 添加…

Athena 执行引擎:在线服务计算的效率王者

引言 在在线服务领域&#xff0c;计算任务呈现出独特的特性&#xff1a;一方面&#xff0c;数据量通常不会过于庞大&#xff0c;因为在线服务对耗时和响应速度有着严苛要求&#xff1b;另一方面&#xff0c;计算任务具有可控性&#xff0c;其大多并非由用户实时输入动态生成&a…

飞桨paddle ‘ParallelEnv‘ object has no attribute ‘_device_id‘【已解决】

书借上回&#xff0c;自从我反复重装paddle之后&#xff0c;我发现了&#xff0c;只要pip list中有库&#xff0c;但是代码报错&#xff0c;那就是飞桨没把代码更新完全&#xff0c;只能自己去改源代码 我又遇到报错了&#xff1a; 根据报错信息&#xff0c;找到ParallelEnv报…

微信小程序之Promise-Promise初始用

我们来尝试使用Promise。 1、需求&#xff0c;做个抽奖的按钮&#xff0c; 抽奖规则&#xff1a; 30%的几率中奖&#xff0c;中奖会提示恭喜恭喜&#xff0c;奖品为10万 RMB 劳斯莱斯优惠券&#xff0c;没中奖会提示再接再厉。 2、先搭界面&#xff1a; <view class&qu…

准备好,开始构建:由 Elasticsearch 向量数据库驱动的 Red Hat OpenShift AI 应用程序

作者&#xff1a;来自 Elastic Tom Potoma Elasticsearch 向量数据库现在被 “基于 LLM 和 RAG 的 AI 生成” 验证模式支持。本文将指导你如何开始使用。 Elasticsearch 已原生集成业内领先的生成式 AI 工具和服务提供商。欢迎观看我们的网络研讨会&#xff0c;了解如何突破 RA…

RNN神经网络

RNN神经网络 1-核心知识 1-解释RNN神经网络2-RNN和传统的神经网络有什么区别&#xff1f;3-RNN和LSTM有什么区别&#xff1f;4-transformer的归一化有哪几种实现方式 2-知识问答 1-解释RNN神经网络 Why&#xff1a;与我何干&#xff1f; 在我们的生活中&#xff0c;很多事情…

Linux | 开机自启动设置多场景实现

注&#xff1a;本文为“Llinux 设置开机自启”相关文章合辑。 略作重排&#xff0c;未整理去重。 如有内容异常&#xff0c;请看原文。 Linux 设置开机自启动的三种方法 幽夜卡尔 2022-10-22 一、在 /etc/rc.local 文件中添加自启动命令 编辑文件&#xff1a;执行以下命令&a…