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

【爬虫】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()
  • 描述:将当前页面保存为文件,同时返回保存的内容。如果 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 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 信息,可获取全部或单个项。

  • 参数

    参数名称类型默认值说明
    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)

相关文章:

  • 项目制作流程
  • 2- PyTorch
  • 如何确定自己的职业发展方向?
  • [创业之路-362]:企业战略管理案例分析-3-战略制定-华为使命、愿景、价值观的演变过程
  • 【LeetCode 热题100】739:每日温度(详细解析)(Go语言版)
  • SpringBoot3+AI
  • 【android bluetooth 协议分析 01】【HCI 层介绍 3】【NUMBER_OF_COMPLETED_PACKETS 事件介绍】
  • Flink CEP是什么?
  • 系统架构设计(十四):解释器风格
  • 开始学习做游戏,就现在
  • 写spark程序数据计算( 数据库的计算,求和,汇总之类的)连接mysql数据库,写入计算结果
  • 【数据结构】2-3-2 单链表的插入删除
  • JSON Schema 高效校验 JSON 数据格式
  • 翻到了一段2005年写的关于需求的文字
  • ⭐️白嫖的阿里云认证⭐️ 第二弹【课时1:提示词(Prompt)技巧】for 「大模型Clouder认证:利用大模型提升内容生产能力」
  • 软件工具:批量图片区域识别+重命名文件的方法,发票识别和区域选择方法参考,基于阿里云实现
  • HarmonyOS 与 OpenHarmony:同根而不同途
  • Kubernetes控制平面组件:Kubelet详解(六):pod sandbox(pause)容器
  • Kubernetes控制平面组件:Kubelet详解(五):切换docker运行时为containerd
  • 【提高+/省选−】洛谷P1495 —— 【模板】中国剩余定理(CRT)/ 曹冲养猪
  • 520、521婚登预约迎高峰?上海民政:将增派力量,新人可现场办理
  • 曾毓群说未来三年重卡新能源渗透率将突破50%,宁德时代如何打好换电这张牌
  • 国际乒联主席索林:洛杉矶奥运会增设混团是里程碑事件
  • 中欧互动中的合作与分歧:务实需求将克服泛安全化的“政治钟摆”
  • 贵州省委军民融合发展委员会办公室副主任李刚接受审查调查
  • 远洋集团:今年前4个月销售80.9亿元,同比增加13.62%