varuntech123/Mi-Notes-Bulk-Exporter
GitHub: varuntech123/Mi-Notes-Bulk-Exporter
一款Python自动化工具,通过浏览器自动化和网络响应分析实现小米笔记的批量导出功能。
Stars: 0 | Forks: 0
# Mi Notes 批量导出工具
一个 Python 自动化工具,用于从 Mi Notes 网页界面导出小米/米笔记为独立的 `.txt` 文件。
## 问题
Mi Notes 网页没有提供实用的批量导出选项来导出所有笔记。手动逐个打开和复制数百条笔记既慢又容易出错。
## 解决方案
本项目通过结合以下方式实现导出流程自动化:
- 使用 Playwright 进行浏览器自动化
- 对 Mi Notes 网页网络调用进行逆向工程
- 从内部笔记端点精确提取笔记详情
- 将笔记导出为独立的纯文本 `.txt` 文件
## 关键思路
简单的 UI 爬取并不可靠,因为页面混合了笔记列表预览和笔记详情内容。
为解决此问题,本工具捕获内部笔记列表和笔记详情响应,并使用它们精确导出每条笔记。
## 功能
- 支持手动登录
- 按照 Mi Notes 网页界面中的可见顺序读取笔记
- 获取精确的笔记详情
- 将每条笔记导出为独立的 `.txt` 文件
- 支持批量导出用于测试或完整导出
- 提供调试模式用于故障排查
## 项目流程
1. 使用 Playwright 在 Chrome 中打开 Mi Notes 网页
2. 用户手动登录
3. 工具检测左侧窗格中可见的笔记
4. 工具将可见笔记映射到内部笔记记录
5. 工具使用内部笔记端点获取精确的笔记详情
6. 工具将笔记标记清理为可读的纯文本
7. 工具将每条笔记保存为独立的 `.txt` 文件
## 工作流程
- 浏览器打开 Mi Notes 网页
- 用户登录并打开「所有笔记」页面
- 导出工具按顺序读取初始可见的笔记
- 工具捕获内部网络响应
- 它获取每条笔记的精确内容
- 它将笔记保存为独立的文本文件
## 技术栈
- Python
- Playwright
- 浏览器自动化
- 网络/API 响应分析
- 文本提取与规范化
## 安装说明
### 1. 克隆仓库
```
git clone https://github.com/varuntech123/mi-notes-bulk-exporter.git
cd mi-notes-bulk-exporter
```
### 2. 创建虚拟环境
```
python -m venv venv
```
### 3. 激活虚拟环境
Windows PowerShell:
```
venv\Scripts\Activate.ps1
```
Windows CMD:
```
venv\Scripts\activate
```
### 4. 安装依赖
```
pip install -r requirements.txt
python -m playwright install chrome
```
## 如何运行
### 导出前 20 条笔记
```
python mi_notes_exporter.py --output-dir exported_notes_first20 --limit 20 --debug
```
### 导出所有笔记
```
python mi_notes_exporter.py --output-dir exported_notes_all --limit 601 --debug
```
## 使用步骤
1. 运行脚本
2. 手动登录 Mi Notes 网页
3. 打开「所有笔记」
4. 保持左侧窗格中顶部笔记可见
5. 在终端中按 Enter
6. 之后不要手动滚动或点击
7. 等待导出完成
## 输出
该工具会在选定的输出文件夹中为每条笔记创建独立的 `.txt` 文件。
示例:
- `001_90-days-challenges.txt`
- `002_daily_tasks.txt`
## 调试模式
使用 `--debug` 保存故障排查所需的工件,包括:
- 页面截图
- 有序的笔记目标
- 捕获的网络负载
## 重要说明
- 请勿将个人导出的笔记上传到 GitHub
- 请勿上传浏览器配置文件/会话文件夹
- 本项目仅用于个人数据提取和自动化研究
- 网页应用的更改可能需要更新选择器或响应映射
## 示例命令
```
python mi_notes_exporter.py --output-dir exported_notes_demo --limit 10 --debug
python mi_notes_exporter.py --output-dir exported_notes_first20 --limit 20 --debug
python mi_notes_exporter.py --output-dir exported_notes_all --limit 601 --debug
```
**截图**
Chrome 截图...

命令行截图...

## 面试价值
本项目展示了:
- 解决实际用户问题
- 浏览器自动化
- 对生产环境网页应用进行逆向工程
- 使用内部网络响应而非脆弱的爬取方式
- 设计混合自动化加数据提取的工作流程
标签:API抓取, HTTP工具, IP 地址批量处理, Mi Notes, Playwright, Python, TXT导出, 云资产清单, 小米笔记, 批量导出, 数据导出, 数据泄露, 数据迁移, 文本提取, 无后门, 浏览器自动化, 特征检测, 笔记备份, 网络拦截, 网络请求分析, 逆向工具, 逆向工程