# py_mht2html **Repository Path**: siyuw/py_mht2html ## Basic Information - **Project Name**: py_mht2html - **Description**: python实现的mht文件转为html格式,用于QQ聊天记录导出的mht文件处理。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-28 - **Last Updated**: 2025-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mht2html 工具集说明 本项目用于将 Windows版 QQ 导出的 MHT 文件(.mht/.mhtml)备份文件,批量转换为 HTML,并提取其中的嵌入媒体资源,支持去重、扩展名修正和安全引用替换,方便保存和查看。 ## 目录结构 ``` QQMht/ ├── input/ # 存放原始 .mht 文件 ├── output/ # 输出目录,每个 MHT 文件一个子目录 │ └── / # 以 MHT 文件名为子目录名 │ ├── .html # 主 HTML 文件 │ ├── att/ # 提取的媒体资源 │ └── archive/ # 归档的 part-*.dat 等无用附件 ├── tools/ │ ├── mht_to_html.py # MHT 解析与提取主脚本 │ └── dedupe_att.py # 附件去重与 HTML 引用修正脚本 └── README.md # 项目说明 ``` ## 依赖环境 - Python 3.7+ - 依赖包:`beautifulsoup4` 安装依赖: ```sh pip install beautifulsoup4 ``` ## 使用方法 ### 1. MHT 转 HTML 并提取附件 将 MHT 文件(如 `input/bm.mht`)转换为 HTML 并提取嵌入资源: ```sh python tools/mht_to_html.py input/bm.mht ``` - 输出:`output/bm/bm.html`,附件在 `output/bm/att/`,无用 part-*.dat 归档到 `output/bm/archive/` - 支持自动识别 Content-Type 并修正扩展名 - HTML 中的 src/href 会自动指向 att 目录下的文件 ### 2. 附件去重与 HTML 引用修正 对提取出的附件按内容哈希去重,并自动修正 HTML 中的引用: ```sh python tools/dedupe_att.py --att output/bm/att --html output/bm/bm.html ``` - 仅保留唯一的媒体文件,HTML 引用自动更新 ### 3. 批量处理 可将多个 .mht 文件放入 `input/` 目录,循环调用上述脚本批量处理。 ## 主要功能说明 - **MHT 解析**:手动解析 MIME,兼容 QQ 邮件格式 - **扩展名修正**:优先用 Content-Type 判定扩展名,避免 .dat - **安全 HTML 更新**:用 BeautifulSoup 精确替换 src/href - **附件去重**:按 SHA256 合并重复文件,HTML 引用同步更新 - **归档无用附件**:part-*.dat 自动移入 archive 目录 ## 注意事项 - 若遇到特殊编码或解析失败,可手动检查 input/ 下的原始 MHT 文件 - 若 HTML 引用未生效,请确认 dedupe_att.py 是否已正确运行 ## 关于代码生成 本项目中的脚本和辅助工具在初始实现阶段由 AI 辅助生成并在本仓库中迭代完善。AI 提供了自动化的实现草案(包括 `tools/mht_to_html.py`、`tools/dedupe_att.py` 等),随后由人工进行审阅、修正和测试。 注意事项: - 虽然已尽量保证行为可靠性,但建议在生产或重要数据上使用前先在备份数据上验证输出。 - AI 生成代码在边界条件、编码或极端输入下可能需要额外的人为审查与单元测试。请将该仓库视为“有 AI 辅助开发”的起点而非最终保证无缺陷的产品。