首页 / DrissionPage 入门教程 / 获取网页信息

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')

TIPhtml 属性返回的是浏览器渲染后的 DOM,和右键查看源码看到的一样。和原始 HTTP 响应可能略有不同。