六壬学堂

工具

自建工具的源码包,全部可下载、可自行改造。「六壬古籍数字馆」用来把《六壬古籍原文与注解书目.md》里的公版资源抓成本地离线库:读书目 → 找 PDF 直链 → 下载 → 校验 → 抽文入库。三个版本依次递进,接口不互通。

下面是早期原型,不是成品。每个包都列了「已实现」与「未完成/已知问题」两栏,请以实际代码为准——尤其 v1 的检索模块与 v2_complete 的入库表结构,目前都跑不通完整链路。

六壬古籍数字馆 v1 建库与检索 3.5 KB

按九部书 × 七层目录(原本PDF/扫描图像/OCR文本/校勘文本/注解/版本记录/研究笔记)铺出离线库结构,建 SQLite FTS5 全文表,另附一个 Flask 检索页。

怎么跑:pip install -r requirements.txt → python build.py → python app.py(:8080)

已实现

  • library.py 建目录树(9 书 × 7 层)
  • index.py 建 FTS5 虚表
  • app.py 搜索页(Flask)
  • config.json 四项配置

未完成/已知问题

  • collector / ocr / notes / version / archive 五个模块只有注释,没有实现
  • 无导入程序:虚表建好后没有任何写入路径,搜索恒为空
  • app.py 检索语句 `where texts match ?` 中 texts 不是列名(列为 book/page/content),会直接抛错

↓ 下载 六壬古籍数字馆_v1_建库与检索.zip(3.5 KB)

六壬古籍数字馆 v2 资源发现 8.9 KB

读《六壬古籍原文与注解书目.md》,把其中的 Markdown 链接抽成任务表,逐条抓网页、找出 .pdf / .djvu 直链,输出采集报告 JSON。

怎么跑:pip install -r requirements.txt → python collect.py → 采集报告.json

已实现

  • parser.py 按 `[标题](url)` 抽书目
  • crawler.py requests + BeautifulSoup 找 PDF/DJVU
  • report.py 落盘 JSON 报告
  • 随包附书目 MD 一份

未完成/已知问题

  • parser 不区分书名链接与普通参考链接,书目里非书的链接也会被当成采集任务
  • crawler 的裸 `except: return []` 会把网络错误与解析失败一并吞成「没找到」
  • 无下载执行器(v2 只扫描),archive / importer / ocr 仍是注释

↓ 下载 六壬古籍数字馆_v2_资源发现.zip(8.9 KB)

六壬古籍数字馆 v2 完整版 下载与入库 4.1 KB

在 v2 之上补齐下载器、PDF 真伪校验与文字入库三步:扫描 → 下载 → 校验 → 逐页抽文写入 SQLite。

怎么跑:pip install -r requirements.txt → python collect.py → python download_all.py → python import_text.py

已实现

  • downloader.py 流式落盘
  • checker.py 校验 %PDF magic
  • import_text.py 用 pymupdf 逐页抽文写 texts 表
  • collect → download_all → import_text 三段式

未完成/已知问题

  • import_text.py 建的是普通表 texts,而 v1 建的是 FTS5 虚表,两者不兼容
  • import_text.py 与 download_all.py 的 `except: pass` 吞掉全部异常,失败无任何提示
  • download_all.py 硬编码「下载缓存」目录,与 config.json 的 cache 键不一致
  • collect.py 把 download_tasks.json 写死在当前目录,不走 config

↓ 下载 六壬古籍数字馆_v2complete_下载与入库.zip(4.1 KB)

三版关系

v1 解决「库长什么样」:目录树 + FTS5 虚表 + 检索页,不碰网络。
v2 解决「资源在哪儿」:把书目里的链接抽成任务、找出 PDF 直链,只扫描不下载。
v2_complete 解决「拿下来怎么用」:补下载、校验、抽文入库三步。
三者 config.json 字段与建表方式互不兼容,要合并成一条流水线需先统一 schema。

使用注意

三个包都依赖 requests / beautifulsoup4 / pymupdf(v1 另需 flask)。crawler 会向书目里列的公版站点(识典、知命书院、ctext 等)发请求,批量跑请自行控制频率与并发,遵守对方站点的使用条款;下载到的 PDF/DJVU 版权与来源以原站标注为准,本工具只做技术抓取,不代表任何授权。