wangshaoqing 321bbff1c1 添加学习教程目录(learning/)及对应单元测试
- 新增 DrissionPage 基础教程(01-05)
- 新增 Playwright 基础教程(01-05)
- 新增网络基础教程(01-05)
- 新增 test_learning_examples.py 单元测试
- 更新 .gitignore 忽略 learning/*/output/ 目录
2026-05-06 16:39:55 +08:00
..

DrissionPage Basics

这里放的是你已经学过的第一阶段内容。

这一组练习围绕当前项目真实使用的 DrissionPage 工作流展开,重点是先把“打开页面、附着浏览器、监听接口、解析数据、下载文件”这条链路打通。

建议学习顺序

  1. 01_open_page.py
  2. 02_attach_browser.py
  3. 03_listen_api.py
  4. 04_parse_aweme.py
  5. 05_download_video.py

开始前先准备

在项目根目录执行:

python3 -m venv .venv
source .venv/bin/activate
pip install requests DrissionPage

如果你要练附着浏览器,先单独启动登录浏览器:

./.venv/bin/python login_douyin.py --browser-port 9223

练习原则

  • 不要复制主脚本全部代码
  • 每次只补一个文件
  • 跑起来后先 print() 看对象和数据结构
  • 先写最小可运行版本,再做整理
  • 如果报错,优先看报错里提到的对象类型和字段名

每个文件你应该关注什么

01_open_page.py

  • 学会创建 ChromiumPage
  • 学会 page.get(url)
  • 学会确认页面是否真的打开

运行:

./.venv/bin/python learning/drissionpage_basics/01_open_page.py

02_attach_browser.py

  • 学会通过 127.0.0.1:9223 附着到已启动 Chrome
  • 学会验证附着的是不是你刚才登录的浏览器

运行:

./.venv/bin/python learning/drissionpage_basics/02_attach_browser.py

03_listen_api.py

  • 学会 page.listen.start(...)
  • 学会 page.listen.wait(timeout=...)
  • 学会观察返回包的 response.bodyresponse.raw_body

运行:

./.venv/bin/python learning/drissionpage_basics/03_listen_api.py

04_parse_aweme.py

  • 不连浏览器,只拿示例数据练解析
  • 学会从 aweme_list 提取标题、视频 id、视频 url

运行:

./.venv/bin/python learning/drissionpage_basics/04_parse_aweme.py

05_download_video.py

  • 学会用 requests 下载一个 mp4
  • 学会写入本地文件
  • 学会验证文件是否真的下载成功

运行:

./.venv/bin/python learning/drissionpage_basics/05_download_video.py

推荐你的手动练法

  1. 先补 01,只做到“能打开页面”
  2. 再补 02,只做到“能附着到浏览器”
  3. 再补 03,只做到“能打印监听结果”
  4. 再补 04,只做到“能把字段提出来”
  5. 最后补 05,把一个视频链接下载到 learning/drissionpage_basics/output/

练完后再回看主脚本

等你把这 5 个文件都手写过一遍,再回头看这些文件会更清楚:

重点看:

  • create_page
  • page.listen.start
  • page.listen.wait
  • extract_aweme_payload
  • parse_aweme_items
  • download_video