用 org mode 管理读过的书
缘起
豆瓣会删除书的条目,八月的时候它们删除了《香港简史》,我在上面的笔记基本付诸东流1。有一段时间豆瓣经常500。这两件事让我觉得豆瓣并不是很可靠。所以我开始用 org-mode 做笔记,用 github 同步备份。
后来我读到卡尔维诺的《为什么读经典》,深感应该重新审视一下我读过的书,所以我写了个小脚本,把豆瓣读过列表的数据抓下来,整理成 org 文件。
代码工作
代码工作分两部分:
- 爬虫;
- 组织成 org mode;
爬虫
因为很简单,所以没有用 scrapy,实际上就是循环调用豆瓣请求已读链接的,把 html 保存下来,然后用 beautiful soup 解析一下(实际上就是搜 selector)3。
org 文件生成
这次做的事情最大的坑是 PyOrgMode,首先它已经弃坑了,然后它输出 org 的 tag 时是有问题的。它会把多个 tag 输出成 :tag0::tag1::tag2:
tag 之间多了一个冒号。我在本地把代码修了4。
说一下之所以使用 org 有几个原因:
- 我毕竟是 emacs 用户;
- 我可以用 tag 方便地给书分类;
- 那些永远不会在读的书5可以轻松 archie;
简单来说就是 org mode 用起来就像一个简单易用的数据库一样。但其实有个缺点,就是这么多 org file,emacs 初始化的时候会要了老命。
成品
最后把每一本书保存成一个单独的 org 文件,所有记录在我另一个 repo 里面。