工具
自建工具的源码包,全部可下载、可自行改造。「六壬古籍数字馆」用来把《六壬古籍原文与注解书目.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),会直接抛错
六壬古籍数字馆 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 完整版 下载与入库 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
三版关系
v1 解决「库长什么样」:目录树 + FTS5 虚表 + 检索页,不碰网络。
v2 解决「资源在哪儿」:把书目里的链接抽成任务、找出 PDF 直链,只扫描不下载。
v2_complete 解决「拿下来怎么用」:补下载、校验、抽文入库三步。
三者
v2 解决「资源在哪儿」:把书目里的链接抽成任务、找出 PDF 直链,只扫描不下载。
v2_complete 解决「拿下来怎么用」:补下载、校验、抽文入库三步。
三者
config.json 字段与建表方式互不兼容,要合并成一条流水线需先统一 schema。使用注意
三个包都依赖
requests / beautifulsoup4 / pymupdf(v1 另需 flask)。crawler 会向书目里列的公版站点(识典、知命书院、ctext 等)发请求,批量跑请自行控制频率与并发,遵守对方站点的使用条款;下载到的 PDF/DJVU 版权与来源以原站标注为准,本工具只做技术抓取,不代表任何授权。