# 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`