EPUB如何秒变Markdown?zlibrary-to-notebooklm电子书转换核心代码全拆解

发布时间:2026/10/11 12:59:36
EPUB如何秒变Markdown?zlibrary-to-notebooklm电子书转换核心代码全拆解 【免费下载链接】zlibrary-to-notebooklm一键将 Z-Library 书籍自动下载并上传到 Google NotebookLM项目地址https://gitcode.com/gh_mirrors/zl/zlibrary-to-notebooklm点击查看免费下载还在手动把 EPUB 书籍转成 Markdown 吗开源项目zlibrary-to-notebooklm只需一条命令就能把 Z-Library 上的电子书自动下载、转换为 Markdown并一键上传到 Google NotebookLM 变成你的 AI 知识库。本文将拆解它 EPUB 转 Markdown 的核心代码帮你搞懂整个转换机制。为什么要把 EPUB 转成 Markdown在 完整工作流程 中格式处理的优先级是PDF⭐ —— 保留排版直接上传EPUB—— 转换为 Markdown对 AI 检索最友好其他格式—— 自动处理为什么偏偏是 Markdown因为 NotebookLM 基于文本做检索和问答HTML 里混杂的标签、脚本、样式噪声会让 AI 读得费劲。而 Markdown 干净、结构化章节标题就是#正文就是纯文本——这正是 AI 最擅长的格式。核心转换文件一览整个转换逻辑集中在 scripts/convert_epub.py只有约 195 行由两个函数组成函数位置作用epub_to_markdown()convert_epub.py#L121打开 EPUB提取元数据和全部章节html_to_markdown()convert_epub.py#L13递归遍历 HTML 节点逐个映射为 Markdown两个库是它的地基ebooklib负责解包 EPUBBeautifulSoup负责解析 HTML。依赖声明在 requirements.txt 中。第一步解包 EPUB读取元数据EPUB 本质是一个 ZIP 压缩包ebooklib的read_epub()一句话就能打开它。接下来从 DC 元数据里取出书名和作者写入 Markdown 文件头部title book.get_metadata(DC, title)[0][0] author book.get_metadata(DC, creator)[0][0] markdown_content f# {title}\n\n markdown_content f**Author:** {author}\n\n这样生成的文件自带标题和作者信息上传到 NotebookLM 后一眼就能认出是哪本书。第二步只挑正文过滤垃圾页面EPUB 里的文件五花八门正文、封面、脚本、CSS……如何区分关键在 convert_epub.py#L144for item in book.get_items(): if item.get_type() 9: # ITEM_DOCUMENT 9ebooklib 给每类内容定义了数字类型码9 代表文档HTML 正文其他类型一律跳过。这是第一层过滤保证只处理真正的章节文件。第三步递归遍历逐节点转成 Markdown这是全文件最精华的部分——process_element()函数convert_epub.py#L17用递归实现了一个HTML→Markdown 翻译器规则按优先级依次判断️ 先丢弃脚本、样式、导航if element.name in [script, style, nav, footer, svg]: return 这些标签对阅读毫无意义直接返回空字符串一步到位地降噪。 再映射每种标签对应一种 Markdown 语法HTML 标签转换结果源码位置h1~h6#~######级标题convert_epub.py#L31-L36p独立段落前后空行convert_epub.py#L39-L43b/strong**加粗**convert_epub.py#L46-L50i/em*斜体*convert_epub.py#L53-L57code行内代码convert_epub.py#L60-L64a文字convert_epub.py#L67-L72ul- 无序列表convert_epub.py#L75-L82ol1. 有序列表convert_epub.py#L84-L91标题的转换特别巧妙int(element.name[1])从标签名里直接解析出级别# * level拼出对应数量的井号六种标题一次搞定。 最后兜底递归处理子节点遇到未显式处理的标签比如div、section就遍历它的子节点继续递归for child in element.contents: result process_element(child)这种显式规则 递归兜底的组合既保证了常见标签的精确转换又能应对任意嵌套结构——无论 EPUB 里的 HTML 写得多乱都能兜住。第四步清洗空行合并成完整 Markdown递归结束后原始输出往往空行过多。convert_epub.py#L114-L116 用两个正则做最后收尾连续 4 个以上换行压缩成 3 个多余空格合并为一个细节加分项100 字符阈值注意 convert_epub.py#L153 这行判断if len(chapter_md.strip()) 100:转换结果少于 100 字符的章节通常是空白页、版权页会被直接丢弃。配合第一层的类型过滤最终留下的都是干货正文每章之间用---分隔线隔开。转换完成后发生了什么convert_epub.py并不是孤立运行的。在主流程 scripts/upload.py 的convert_to_txt()upload.py#L453-L495中检测到.epub文件后自动调用convert_epub.py生成.md统计 Markdown 的词数超过 35 万词自动按章节分块——因为 NotebookLM CLI 对大文件容易超时分块后逐块上传同一个笔记本既规避限制又保持内容完整调用notebooklm create创建笔记本、notebooklm source add上传内容也就是说一次 EPUB 转换的终点不是一份 .md 文件而是一个可以立即向 AI 提问的笔记本。整个链路在 docs/WORKFLOW.md 中有完整流程图。快速上手三步跑通全流程git clone https://gitcode.com/gh_mirrors/zl/zlibrary-to-notebooklm cd zlibrary-to-notebooklm pip install -r requirements.txt# 1. 首次登录保存会话后续免登录 python3 scripts/login.py # 2. 一条命令下载 转 Markdown 上传 python3 scripts/upload.py https://zh.zlib.li/book/...如果只想要 EPUB 转 Markdown 这个能力单独跑转换脚本也可以python3 scripts/convert_epub.py book.epub [output.md]写在最后zlibrary-to-notebooklm 用不到 200 行代码演示了一个干净利落的 EPUB→Markdown 方案类型码过滤 递归标签映射 正则清洗三层过滤层层降噪。这套思路不依赖重型转换库逻辑透明、易于魔改——想支持新标签在process_element()里加一个分支即可。如果你也被下载书 → 转格式 → 手动上传的流程折腾过不妨试试这条自动化链路。更多细节可参考工作流程详解docs/WORKFLOW.md故障排除指南docs/TROUBLESHOOTING.md安装指南INSTALL.mdSkill 定义SKILL.md⚖️ 本项目仅供学习研究请仅处理你拥有合法访问权限的内容尊重知识产权支持正版阅读。赞分享【免费下载链接】zlibrary-to-notebooklm一键将 Z-Library 书籍自动下载并上传到 Google NotebookLM项目地址https://gitcode.com/gh_mirrors/zl/zlibrary-to-notebooklm点击查看免费下载相关推荐如何用markitdown将EPUB电子书转换为完美Markdown笔记如何用markitdown将EPUB电子书转换为完美Markdown笔记 还在为无法高效整理电子书内容而烦恼吗markitdown作为一款强大的Python工人工智能AI 应用MCP 服务如何用zlibrary-to-notebooklm把Z-Library书籍自动上传NotebookLM零基础实战指南如何用zlibrary to notebooklm把Z Library书籍自动上传NotebookLM零基础实战指南 zlibrary to notebookShiori 如何把网页变成 EPUB 电子书与模糊背景缩略图图像处理代码拆解Shiori 如何把网页变成 EPUB 电子书与模糊背景缩略图图像处理代码拆解 Shiori 是一个用 Go 语言构建的极简书签管理器Simple book后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询