📖 知识点回顾
page.get()访问网页page.eles()批量获取元素元素.text/attr()提取数据page.ele()+click()点击 "下一页"page.wait.eles()等待加载time.sleep()稳定节奏
💡 翻页采集套路 进首页 → 批量抓一页 → 点 "下一页" → 等待加载 → 再抓 → 循环直到最后一页 → 汇总保存
⚔️ Kata 实战任务
任务需求:
- 导入 ChromiumPage 和 time
- 访问一个分页列表的练习页(如
https://the-internet.herokuapp.com/dynamic_content类,或你自己的演示列表页) - 循环翻页采集:
- 批量抓取当前页列表元素文字
- 点击 "下一页" 按钮
- 等待页面加载
- 判断是否还能继续翻(没有下一页就停止)
- 汇总所有采集到的数据到列表
- 打印汇总结果
参考代码
from DrissionPage import ChromiumPage
import time
page = ChromiumPage()
page.get("https://the-internet.herokuapp.com/dynamic_content")
print("🌐 已打开分页列表页")
all_data = [] # 汇总所有页数据
# 翻页魔法:循环采集多页
for page_num in range(1, 4): # 假设最多翻3页
print(f"\n📄 正在采集第 {page_num} 页……")
# 批量抓取当前页的列表元素
items = page.eles(".large-10") # 以实际选择器为准
for item in items:
all_data.append(item.text)
# 查找"下一页"按钮
next_btn = page.ele("a:has-text(Next)")
if not next_btn:
print("⏹️ 没有下一页了,停止翻页")
break
# 点击下一页,等待加载
next_btn.click()
time.sleep(1)
# 汇总输出
print(f"\n🎉 采集完成,共抓到 {len(all_data)} 条数据")
for idx, data in enumerate(all_data, 1):
print(f"{idx}. {data}")
运行输出(示意):
🌐 已打开分页列表页
📄 正在采集第 1 页……
📄 正在采集第 2 页……
📄 正在采集第 3 页……
⏹️ 没有下一页了,停止翻页
🎉 采集完成,共抓到 12 条数据
1. ...
2. ...
...
💡 说明:实际练习页的列表选择器、"下一页" 按钮写法可能不同,按你目标页面的实际情况替换即可。核心是循环抓取→翻页→判断停止这套模式。
🧠 思考题
- 翻页采集的循环逻辑里,怎么判断 "已经是最后一页、该停下来了"?
- 如果把采集到的数据进一步保存到文件(如 txt、csv),思路是什么?加在哪一步?
行者孙Python