DrissionPage 入门教程
获取网页信息
本教程共 42 篇 · 第 11 篇 · 更新于 2026-07-29 · 约 6 分钟阅读
DrissionPageDrissionPage 入门教程页面源码titlecookies窗口信息
11. 获取网页信息
本节目标:掌握获取页面各种信息的方法,包括源码、标题、URL、Cookies 和窗口状态。
访问页面后,往往要获取页面的各种数据。
DrissionPage 把这些功能做成了属性,直接读取就行。
页面基本信息
html
获取当前页面 HTML 源码:
tab.get('https://www.baidu.com')
source = tab.html
print(source[:200]) # 打印前 200 个字符
注意:不包含 <iframe> 元素内容。
json
把响应内容解析成 dict:
page.get('https://api.example.com/data.json')
data = page.json
适合获取 API 返回的 JSON 数据。
title
获取页面标题:
tab.get('https://www.baidu.com')
print(tab.title) # 百度一下,你就知道
url
获取当前 URL:
print(tab.url)
user_agent
获取当前 User-Agent:
print(tab.user_agent)
Cookies 管理
获取 cookies
# 获取所有 cookies
cookies = tab.cookies
print(cookies)
设置 cookies
记得带上 domain 属性:
tab.set.cookies({
'name': 'token',
'value': 'abc123',
'domain': '.baidu.com'
})
支持多种格式:dict、str、CookieJar、列表都可以。
清空 cookies
tab.set.cookies.clear()
窗口信息
页面大小
# 页面大小(宽, 高)
print(tab.rect.size)
# 视口大小(不含滚动条)
print(tab.rect.viewport_size)
# 窗口大小
print(tab.rect.window_size)
位置信息
# 窗口在屏幕上的坐标
print(tab.rect.window_location)
# 视口在屏幕上的坐标
print(tab.rect.viewport_location)
# 滚动条位置 (x, y)
print(tab.rect.scroll_position)
窗口状态
# normal / fullscreen / maximized / minimized
print(tab.rect.window_state)
运行状态
是否正在加载
if tab.states.is_loading:
print('页面还在加载...')
加载状态
# connecting / loading / interactive / complete
print(tab.states.ready_state)
页面是否可用
if tab.states.is_alive:
print('标签页还活着')
URL 是否可用
if tab.url_available:
print('当前 URL 可正常访问')
是否有弹窗
if tab.states.has_alert:
print('页面有弹窗')
保存页面
保存为 MHTML
# 保存到指定路径
tab.save(path=r'D:\pages', name='baidu.mhtml')
# 只获取内容,不保存文件
content = tab.save()
MHTML 格式把页面所有资源打包到一个文件,离线也能看。
保存为 PDF
pdf_bytes = tab.save(path=r'D:\pages', name='baidu.pdf', as_pdf=True)
超时设置
# 整体默认超时时间
print(tab.timeout)
# 详细超时设置
print(tab.timeouts)
# {'base': 10, 'page_load': 30, 'script': 10}
综合示例
from DrissionPage import Chromium
tab = Chromium().latest_tab
tab.get('https://www.baidu.com')
# 基本信息
print(f'标题: {tab.title}')
print(f'URL: {tab.url}')
print(f'UA: {tab.user_agent}')
# 窗口信息
print(f'窗口大小: {tab.rect.window_size}')
print(f'窗口状态: {tab.rect.window_state}')
# Cookies
print(f'Cookies 数量: {len(tab.cookies)}')
# 加载状态
print(f'加载状态: {tab.states.ready_state}')
# 保存页面
tab.save(path=r'D:\pages', name='baidu.mhtml')
TIP:
html属性返回的是浏览器渲染后的 DOM,和右键查看源码看到的一样。和原始 HTTP 响应可能略有不同。