Skip to content

About

自定义 Telegram 频道导出 HTML,去掉影响阅读的元素,可筛选时间、标签、是否显示 / 隐藏媒体,针对 PDF 打印优化。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Channel Export Processor

简介

Telegram Channel Export Processor 是一个由我和 Grok 3 + Gemini 2.5 Pro 共同创建,可自定义输出内容、重新排版 Telegram 导出的 HTML 的 Python 工具。

以 Reorx’s Forge 频道为例,对比处理前后的效果。

处理前:

image

处理后:

image

它包含两个模块:

  • 主模块:筛选、合并和格式化聊天记录,生成易于阅读的 HTML 输出,提高 20% 以上的信息密度,针对 PDF 打印优化,支持自定义时间范围、emoji 数量筛选、标签排除和媒体文件的显示 / 隐藏等。
  • 数据分析子模块:提取消息数据、超链接和原博主使用过的标签,输出到 Excel 文件,便于进一步分析。

该项目适用于需要整理回顾和分析 Telegram 频道或群组聊天记录的用户。

版本信息

  • 初始版本: v0.1.0 (包含主模块和数据分析子模块的基本功能)
  • 主模块: V1.83.55
  • 数据分析子模块: V1.27.3

注:早期开发中模块独立迭代,导致版本号分化。未来更新将统一版本号,遵循 Semantic Versioning。

功能

主模块 (V1.83.55)

  • 消息筛选:
    • 根据用户指定的时间范围筛选消息。
    • 按 emoji 总数阈值(默认 ≥ 15)筛选消息。
    • 排除原博主消息中包含特定标签的内容(例如 #music)。
  • 消息合并:将连续的纯图片消息合并到主消息中,减少冗余。
  • 媒体处理:
    • 可选择隐藏媒体(图片、视频等),提供鼠标悬停查看功能。
    • 可选择保留媒体链接,直接显示在输出中。
  • 输出:
    • 生成格式化的 HTML 文件,包含筛选后的消息、摘要信息和提取率。
    • 提取率计算考虑合并的纯图片消息,确保准确性。
    • 支持打印友好的样式,适合导出 PDF。
  • 统计:输出消息总数、合并消息数、中文字数和提取率。

数据分析子模块 (V1.27.3)

  • 消息提取:
    • 提取每条消息的时间、用户名、消息编号、文本、emoji 总数和是否包含媒体。
  • 超链接统计:统计所有消息中的超链接(排除媒体文件链接),按出现次数排序。
  • 标签统计:仅统计原博主(频道主人)非转发消息中的标签,按出现次数排序。
  • 输出:生成 Excel 文件,包含三个工作表:
    • Messages:消息详细信息。
    • Links:超链接及其出现次数。
    • Tags:原博主非转发消息的标签及其出现次数。

文件结构

Telegram-Channel-Export-Processor/
├── main.py                # 主模块 (1.83.55)
├── analysis.py            # 数据分析子模块 (V1.27.3)
├── README.md              # 项目说明文件
├── ChatExport_2025-06-04/ # Telegram 导出的聊天记录目录
│   ├── messages.html
│   ├── messages2.html
│   ├── photos/
│   ├── video_files/
│   ├── ...
├── html/                  # 主模块输出目录(自动创建)
│   ├── YYYYMMDDHHMMSS.html
├── analysis/              # 数据分析子模块输出目录(自动创建)
│   ├── analysis_YYYYMMDDHHMMSS.xlsx

使用说明

依赖

  • Python 3.6+
  • 所需库:
    pip install beautifulsoup4 pandas openpyxl

准备工作

  1. 从 Telegram 导出数据,保存到目录(例如 ChatExport_2025-06-04),包含 messages*.html 文件和媒体文件夹。
  2. 更新代码中的 base_dir 为您的导出目录路径:
    base_dir = 'C:\\path\\to\\your\\ChatExport_2025-06-04'

运行主模块

  1. 运行 main.py:
    python main.py
  2. 根据提示输入:
    • Emoji 总数阈值(默认 15,直接回车即可)。
    • 是否自定义时间范围(Y/N,默认 N,使用全部消息时间范围)。
    • 是否保留媒体链接(Y/N,默认 N,隐藏媒体)。
    • 是否排除特定标签(默认不排除,输入标签如 #music, #star)。
  3. 输出:
    • HTML 文件保存在 html/YYYYMMDDHHMMSS.html。
    • 终端和 HTML 文件开头显示摘要信息(消息总数、提取率等)。

运行数据分析子模块

  1. 运行 analysis.py:
    python analysis.py
  2. 输出:
    • Excel 文件保存在 analysis/analysis_YYYYMMDDHHMMSS.xlsx,包含 Messages、Links 和 Tags 工作表。

注意事项

  • 文件路径:确保 Python 中 HTML 文件路径正确,包含 messages*.html 和相关媒体文件夹。
  • 无法显示媒体:就算用户选择显示媒体,输出 HTML 依然不显示,是因为 Telegram 导出限制文件不超过 8M,超限制的文件导不出来所以不显示。
  • 打印:对于大量历史记录,比如导出中文超过 40 万字,双面 A4 纸打印可能超过 600 页,酌情删减。
  • 编码:确保输入文件使用 UTF-8 编码,避免乱码。

版本信息

  • 主模块:V1.83.55
  • 数据分析子模块:V1.27.3

联系

如有问题或建议,请联系 涂俊杰 或提交 Issue。

About

自定义 Telegram 频道导出 HTML,去掉影响阅读的元素,可筛选时间、标签、是否显示 / 隐藏媒体,针对 PDF 打印优化。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages