Kindle 导出的笔记被锁死怎么办?
如果你也有那种通过 Kindle 电子书做笔记、结果发现导出功能被限制或者导出的格式乱七八糟的经历,那真的会让人抓狂。我最近遇到一个特别棘手的情况:好几本重要的技术书,笔记导出权限被锁了,直接从官方后台拿不到干净的文本。
下一篇
用 React DataGrid 撸了一个太空任务探索器 →
既然官方的路走不通,我干脆直接把 Claude Code 拉出来,让它帮我写个自动化脚本,直接去解析本地的 Kindle 缓存文件。
实操思路与步骤
Kindle 的笔记其实都藏在本地的 My Clippings.txt 或者特定的数据库文件里。单纯靠正则匹配有时候会因为格式错位搞得一团糟,所以我让 Claude Code 帮我构建了一个基于 Python 的解析工作流。
第一步,首先要定位到 Kindle 挂载目录下的文件路径。
第二步,编写解析逻辑。我给 Claude Code 下的指令比较具体,要求它不要只做简单的字符串切割,而是要识别出每一段笔记的起始符、书名、以及对应的页码。
下面是我让 Claude Code 生成的核心逻辑代码片段,它处理了那种由于换行符导致的笔记断裂问题:
import re
import os
def parse_kindle_clippings(file_path):
if not os.path.exists(file_path):
print("找不到文件,请检查路径")
return
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 使用正则匹配 Kindle 笔记的标准分隔符
# 格式通常是: *** Start of Highlight *** ... *** End of Highlight ***
pattern = re.compile(r'\*\*\* Start of Highlight \*\*\*(.*?)\*\*\* End of Highlight \*\*\*', re.DOTALL)
highlights = pattern.findall(content)
for idx, highlight in enumerate(highlights):
lines = [line.strip() for line in highlight.strip().split('\n') if line.strip()]
if len(lines) >= 2:
# 假设第一行是笔记内容,后面跟着书名和日期
note_content = lines[0]
metadata = " | ".join(lines[1:])
print(f"--- Highlight #{idx+1} ---")
print(f"Content: {note_content}")
print(f"Info: {metadata}\n")
if __name__ == "__main__":
# 这里填你本地文件的实际路径
target_path = "./My Clippings.txt"
parse_kindle_clippings(target_path)踩坑经验
在让 Claude Code 跑这个任务时,我发现了一个坑:很多人的 Kindle 笔记里会有大量的特殊符号或者是那种由于 Kindle 系统 Bug 产生的乱码字符。如果直接用简单的 split,解析出来的书名会带有一堆乱码。
我当时直接跟 Claude Code 说:「注意处理那些非 ASCII 的异常字符,并把书名提取出来作为独立的字段。」它随后优化了正则逻辑,引入了更严谨的清洗步骤,最后输出的结果直接就是干净的 Markdown 格式,我甚至可以直接把这些笔记丢进 Obsidian 里做知识管理。
这种“工具造工具”的过程确实比自己一行行写代码要快得多,尤其是在面对这种格式不规范的“脏数据”时,Claude Code 的逻辑纠错能力确实很硬核。
免费 AI 工具箱 · 全部完全免费
全部回复 (6)
小
小柯爱学习
专家
1小时前
用 Claude 写个插件确实是现在的最优解,太强了!这种思路完全打通了学习的闭环,感觉你离自动化背单词又近了一步,加油!
0
杭
杭漂码农
专家
1小时前
@小柯爱学习 确实能跑通,但我现在卡在解析格式这一步了,Claude 给的代码总报错,你有遇到过吗?
0
脚
强
小
技