- 新增 DrissionPage 基础教程(01-05) - 新增 Playwright 基础教程(01-05) - 新增网络基础教程(01-05) - 新增 test_learning_examples.py 单元测试 - 更新 .gitignore 忽略 learning/*/output/ 目录
122 lines
2.9 KiB
Markdown
122 lines
2.9 KiB
Markdown
# 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`
|
|
|
|
## 开始前先准备
|
|
|
|
在项目根目录执行:
|
|
|
|
```bash
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install requests DrissionPage
|
|
```
|
|
|
|
如果你要练附着浏览器,先单独启动登录浏览器:
|
|
|
|
```bash
|
|
./.venv/bin/python login_douyin.py --browser-port 9223
|
|
```
|
|
|
|
## 练习原则
|
|
|
|
- 不要复制主脚本全部代码
|
|
- 每次只补一个文件
|
|
- 跑起来后先 `print()` 看对象和数据结构
|
|
- 先写最小可运行版本,再做整理
|
|
- 如果报错,优先看报错里提到的对象类型和字段名
|
|
|
|
## 每个文件你应该关注什么
|
|
|
|
### `01_open_page.py`
|
|
|
|
- 学会创建 `ChromiumPage`
|
|
- 学会 `page.get(url)`
|
|
- 学会确认页面是否真的打开
|
|
|
|
运行:
|
|
|
|
```bash
|
|
./.venv/bin/python learning/drissionpage_basics/01_open_page.py
|
|
```
|
|
|
|
### `02_attach_browser.py`
|
|
|
|
- 学会通过 `127.0.0.1:9223` 附着到已启动 Chrome
|
|
- 学会验证附着的是不是你刚才登录的浏览器
|
|
|
|
运行:
|
|
|
|
```bash
|
|
./.venv/bin/python learning/drissionpage_basics/02_attach_browser.py
|
|
```
|
|
|
|
### `03_listen_api.py`
|
|
|
|
- 学会 `page.listen.start(...)`
|
|
- 学会 `page.listen.wait(timeout=...)`
|
|
- 学会观察返回包的 `response.body` 和 `response.raw_body`
|
|
|
|
运行:
|
|
|
|
```bash
|
|
./.venv/bin/python learning/drissionpage_basics/03_listen_api.py
|
|
```
|
|
|
|
### `04_parse_aweme.py`
|
|
|
|
- 不连浏览器,只拿示例数据练解析
|
|
- 学会从 `aweme_list` 提取标题、视频 id、视频 url
|
|
|
|
运行:
|
|
|
|
```bash
|
|
./.venv/bin/python learning/drissionpage_basics/04_parse_aweme.py
|
|
```
|
|
|
|
### `05_download_video.py`
|
|
|
|
- 学会用 `requests` 下载一个 mp4
|
|
- 学会写入本地文件
|
|
- 学会验证文件是否真的下载成功
|
|
|
|
运行:
|
|
|
|
```bash
|
|
./.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 个文件都手写过一遍,再回头看这些文件会更清楚:
|
|
|
|
- [Douyin.py](/Users/wangshaoqing/Desktop/MiaoSi/Study/douyin-crawler-poc/Douyin.py)
|
|
- [login_douyin.py](/Users/wangshaoqing/Desktop/MiaoSi/Study/douyin-crawler-poc/login_douyin.py)
|
|
|
|
重点看:
|
|
|
|
- `create_page`
|
|
- `page.listen.start`
|
|
- `page.listen.wait`
|
|
- `extract_aweme_payload`
|
|
- `parse_aweme_items`
|
|
- `download_video`
|