首页 / DrissionPage 入门教程 / 三种页面对象概览

DrissionPage 入门教程

三种页面对象概览

本教程共 42 篇 · 第 4 篇 · 更新于 2026-07-29 · 约 5 分钟阅读

DrissionPageDrissionPage 入门教程ChromiumPageSessionPageWebPage

4. 三种页面对象概览

本节目标:分清三种页面对象各自的用途,知道什么场景用哪个。学完能根据需求正确选择入口。

DrissionPage 提供了三种页面对象,覆盖网页自动化的所有场景。

它们分别是:ChromiumPageSessionPageWebPage

ChromiumPage

能管理浏览器本身的标签页对象。

你可以把它当成程序入口。它内部封装了浏览器对象和第一个标签页。

大部分操作直接用它就行。

from DrissionPage import ChromiumPage

page = ChromiumPage()          # 创建对象,自动启动浏览器
page.get('https://www.baidu.com')  # 访问网页

特点:控制浏览器,不能切换到数据包收发模式。

适合场景:需要点击、输入、截图等浏览器交互操作。

NOTE:ChromiumPage 生成的标签页对象叫 ChromiumTab,和 WebPage 的 MixTab 不一样。ChromiumTab 不能切换模式。

SessionPage

只收发数据包的页面对象。

它把网络连接和结果解析封装成了页面。操作逻辑和浏览器页面一致。

from DrissionPage import SessionPage

page = SessionPage()
page.get('https://gitee.com/explore/all')
items = page.eles('t:h3')
for item in items[:-1]:
    lnk = item('tag:a')
    print(lnk.text, lnk.link)

特点:轻量、快速,不需要浏览器

适合场景:纯数据采集,不需要页面交互,追求速度和并发。

和 requests 相比,代码量显著减少:

# requests 写法(需要配合 lxml)
import requests
from lxml import etree
response = requests.get(url, headers=headers)
html = etree.HTML(response.text)
element = html.xpath('//h1')[0]

# SessionPage 写法(自带解析)
from DrissionPage import SessionPage
page = SessionPage()
page.get(url)
element = page('tag:h1')

WebPage

二合一,既能控制浏览器,也能收发数据包。

这是最灵活的选择。它生成的标签页对象叫 MixTab,可以在两种模式间切换。

from DrissionPage import WebPage

page = WebPage()               # 默认 d 模式(浏览器控制)
page.get('https://www.baidu.com')
page.to_tab().click('.btn')    # 点击按钮

page.change_mode('s')         # 切换到 s 模式(数据包收发)
page.get('https://api.example.com/data')

特点:灵活切换模式,一个对象搞定两种需求。

适合场景:同一个任务里既要浏览器交互又要高效请求。

怎么选?

对象浏览器数据包速度选择建议
ChromiumPage不能一般纯浏览器操作
SessionPage不能最快纯数据收发
WebPage一般混合场景

简单的判断逻辑:

  • 需要点击、输入、截图?用 ChromiumPage
  • 只需要抓数据,追求速度?用 SessionPage
  • 两种都要?用 WebPage

TIP:新手建议从 ChromiumPage 开始。看得见浏览器操作,学习反馈更直观。熟练后再根据需要切换到其他对象。