帕秋莉的魔法书,探秘知识与力量的源泉!

tmyb

咳咳,咱来聊聊这个“帕秋莉”的实践分享。别误会,不是什么动漫角色的cosplay,是我最近捣鼓的一个小玩意儿,名字就叫“帕秋莉”。

事情是这样的,前段时间我不是沉迷于整理自己的电子书库嘛你们也知道,咱这种人,啥都喜欢收集一点,电子书更是堆积如山。但是,找起来真是头疼,分类也乱七八糟的。

于是我就琢磨着,能不能搞个工具,把这些电子书都好好管理起来?最好能像图书馆那样,有书名、作者、标签啥的,方便检索。这就是我开始折腾“帕秋莉”的初衷。

帕秋莉的魔法书,探秘知识与力量的源泉!

第一步:搭框架

我是想着用现成的工具,比如Calibre啥的。但是用一圈下来,总觉得差点意思,不够灵活,没法完全按照我的想法来。我决定自己动手,丰衣足食!

我先用Python搭个基本的框架。为啥用Python?因为我只会这个!简单易上手,库也多,适合我这种半吊子程序员。

框架很简单,主要就是读取电子书文件,提取信息,然后存起来。这部分我主要用几个库:

  • os:用来遍历文件夹,读取文件。
  • 帕秋莉的魔法书,探秘知识与力量的源泉!

  • BeautifulSoup:用来解析HTML格式的电子书,提取书名、作者等信息。
  • 各种格式的解析库:不同电子书格式不一样我用不同的库来解析。

第二步:提取信息

提取信息这块,挺麻烦的。因为电子书的格式五花八门,啥epub、mobi、azw3、pdf……每种格式的结构都不一样,得分别处理。

我主要是针对epub和mobi这两种格式,写解析的代码。epub还本质上就是个zip压缩包,里面是HTML文件,可以用BeautifulSoup来解析。mobi就比较坑,结构比较复杂,我花不少时间去研究它的格式。

帕秋莉的魔法书,探秘知识与力量的源泉!

然后,我还加个功能,就是从网上抓取一些图书信息,比如豆瓣读书啥的。这样可以补充一些电子书本身缺失的信息,比如简介、评分之类的。

第三步:存储和检索

提取出来的信息,我一开始是直接存在一个文本文件里的。但是数据量大之后,查找起来就特别慢。于是我决定用数据库来存储。

我选SQLite,一个小巧的嵌入式数据库,不需要单独安装服务器,用起来很方便。我用Python的sqlite3库,把数据都存进SQLite数据库里。

检索这块,我直接用SQL语句来查询。比如,想找所有书名包含“魔法”的书,就用SELECT FROM books WHERE title LIKE '%魔法%'这样的语句。

第四步:界面(还没搞定)

帕秋莉的魔法书,探秘知识与力量的源泉!

目前为止,“帕秋莉”还只是一个命令行工具,没有图形界面。用起来不太方便,只能我自己用用。

我计划下一步用 ஏதாவதுGUI框架,比如Tkinter或者PyQt,给它做一个图形界面。这样就可以方便地浏览、搜索电子书。

总结

“帕秋莉”这个小工具,虽然还很简陋,但基本实现我的需求。现在我找电子书方便多,再也不用在一堆文件夹里翻来翻去。

这个工具还有很多可以改进的地方,比如:

    帕秋莉的魔法书,探秘知识与力量的源泉!

  • 支持更多的电子书格式。
  • 更智能的信息提取,比如自动识别书籍类型、标签等。
  • 更强大的检索功能,比如全文检索、模糊搜索等。
  • 同步不同设备。

等我有空,再慢慢折腾。毕竟折腾这些东西,本身就是一种乐趣嘛这就是咱今天的分享,希望能给各位带来那么一丢丢的启发。

帕秋莉的魔法书,探秘知识与力量的源泉!