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

61 lines
2.2 KiB
Markdown

# Network Basics
这个目录是你的第三阶段练习。
这里不再重点练“怎么控制浏览器”,而是练“怎么用浏览器开发者工具看懂页面背后的接口”。
目标是把这条链路练熟:
1. 打开页面
2. 打开 `DevTools`
3. 只看 `Network`
4. 找到真正返回数据的接口
5. 看懂请求头、响应体、分页参数
6. 尝试把请求复制出来单独重放
## 建议学习顺序
1. `01_open_devtools_check_xhr.md`
2. `02_find_aweme_list_api.md`
3. `03_read_headers_and_cookies.md`
4. `04_analyze_pagination.md`
5. `05_copy_as_curl_and_replay.md`
## 开始前先准备
建议你先准备好这几样东西:
- Chrome 或 Chromium
- 一个已经能正常打开抖音页面的环境
- 项目里的 [Douyin.py](/Users/wangshaoqing/Desktop/MiaoSi/Study/douyin-crawler-poc/Douyin.py)
- 你自己的学习笔记
## 练习原则
- 每次只分析一个页面动作
- 先手工看懂,再考虑写代码
- 不要同时盯很多请求,先锁定一个最可疑的
- 看到字段时先记层级,不要急着背名字
- 每次练完都要写出“我这次确认了什么”
## 这组练习要解决什么问题
练完之后,你应该能回答这些问题:
- 这个页面的数据是 HTML 自带的,还是接口后加载的?
- 哪个请求才是真正返回作品列表的?
- 你要的 `aweme_id`、标题、视频地址分别在哪一层?
- 翻页靠什么参数推动?
- 如果浏览器监听不到数据,你下一步该去 DevTools 看什么?
## 和当前项目怎么对照
练这组时,重点对照这些文件:
- [Douyin.py](/Users/wangshaoqing/Desktop/MiaoSi/Study/douyin-crawler-poc/Douyin.py)
- [learning/drissionpage_basics/03_listen_api.py](/Users/wangshaoqing/Desktop/MiaoSi/Study/douyin-crawler-poc/learning/drissionpage_basics/03_listen_api.py)
- [learning/drissionpage_basics/04_parse_aweme.py](/Users/wangshaoqing/Desktop/MiaoSi/Study/douyin-crawler-poc/learning/drissionpage_basics/04_parse_aweme.py)
- [learning/playwright_basics/04_listen_response.py](/Users/wangshaoqing/Desktop/MiaoSi/Study/douyin-crawler-poc/learning/playwright_basics/04_listen_response.py)
你会慢慢发现,浏览器自动化只是“拿数据”的一种方式,真正的关键是你能不能识别出正确的接口。