行者孙Python

奇术秘典篇-Day33|分影之术:多 Page 对象并行,创建多个浏览器实例

📖 知识点

1. 什么是多 Page 并行?

一个脚本里创建多个 Page 对象,每个 Page 对应一个浏览器标签页 / 实例,各自独立访问、独立操作,互不干扰:

# 创建多个Page对象
page1 = ChromiumPage()
page2 = ChromiumPage()

每个 Page 就像一颗独立的水晶球,可以同时去不同的网页干活。

2. 多个 Page 并行干活

page1.get("https://www.baidu.com")
page2.get("https://www.bing.com")

page1 盯百度,page2 盯必应,互不影响,并行采集。

3. 核心理解

点说明
相互独立每个 Page 有独立的标签页、URL、操作状态
各自操作每个 Page 都能独立 get / ele / click
并行优势同时访问多个网页,比一个个串行快

💡 生活比喻 一个水晶球 = 一名学徒。多开几个水晶球,就是多招几名学徒,大家同时去不同地方取货,自然比一个人来回跑快。

⚠️ 易错提醒

  1. 多个 Page 各管各的,操作 page1 不要误以为影响 page2
  2. 资源占用:开多个浏览器会占更多内存,别贪多
  3. 想真正 "同时跑" 多任务,配合 Day34 的线程 / 异步调度更高效

⚔️ Kata 实战任务

任务需求:

  1. 导入 ChromiumPage
  2. 创建两个 Page 对象:page1、page2
  3. page1 访问百度,page2 访问必应
  4. 分别打印两个 Page 的标题,观察并行工作
  5. 确认两者互不干扰

参考代码

from DrissionPage import ChromiumPage

# 分影之术:召唤两颗水晶球
page1 = ChromiumPage()
page2 = ChromiumPage()

# 让它们各自去不同的网页
page1.get("https://www.baidu.com")
page2.get("https://www.bing.com")

# 分别查看各自的成果
print("🔮 page1(水晶球1)标题:", page1.title)
print("🔮 page2(水晶球2)标题:", page2.title)

# 验证互不干扰:page1仍停在百度
print("✅ page1 地址:", page1.url)
print("✅ page2 地址:", page2.url)

运行输出(示意):

🔮 page1(水晶球1)标题: 百度一下,你就知道
🔮 page2(水晶球2)标题: Bing
✅ page1 地址: https://www.baidu.com
✅ page2 地址: https://www.bing.com

💡 观察:两颗水晶球各自去了不同的网页,互不影响。这就是多 Page 并行的基础 —— 分工合作。

🧠 思考题

  1. 多个 Page 对象之间是相互独立的吗?操作 page1 会影响到 page2 吗?
  2. 多个 Page 并行访问相比 "一个 Page 一个个串行访问",优势是什么?有什么代价(资源)?
‹ 返回目录
🏠首页 Python 📦资源 👤关于我