Bookget
古籍数字资源下载与管理工具,支持从 37 个数字图书馆网站下载古籍图片和文字资源(包括 IIIF 2.x / 3.0 manifest)。全异步架构,插件式适配器设计。
支持的网站
共 37 个站点适配器(其中多数走 IIIF)。下表由适配器注册表自动生成,新增适配器后请重新生成。
中国大陆
| 网站 | 域名 | 图片 | 文字 | 搜索 | |
|---|---|---|---|---|---|
| 中华古籍智慧化服务平台 | guji.nlc.cn |
✓ | ✓ | ||
| 中國國家圖書館·讀者雲門戶 | read.nlc.cn |
✓ | |||
| 识典古籍 | shidianguji.com |
✓ | ✓ | ✓ | |
| 中国哲学书电子化计划 (CText) | ctext.org |
✓ | ✓ | ✓ |
日本
| 网站 | 域名 | 图片 | 文字 | 搜索 | |
|---|---|---|---|---|---|
| 国立国会図書館 (NDL) | dl.ndl.go.jp |
✓ | |||
| 京都大学贵重资料数字档案馆 (Kyoto RMDA) | rmda.kulib.kyoto-u.ac.jp |
✓ | |||
| 東京国立博物館 (TNM) | webarchives.tnm.jp |
✓ | |||
| 国書データベース (NIJL Kokusho) | kokusho.nijl.ac.jp |
✓ | |||
| 庆应义塾大学数字典藏 (Keio) | dcollections.lib.keio.ac.jp |
✓ | |||
| 东洋文库 (Toyo Bunko / NII-DSR) | dsr.nii.ac.jp |
✓ | |||
| e国宝 (e-Museum) | emuseum.nich.go.jp |
✓ | |||
| 国立歴史民俗博物館 (khirin-a) | khirin-a.rekihaku.ac.jp |
✓ | |||
| 龍谷大學圖書館 (Ryukoku) | da.library.ryukoku.ac.jp |
✓ |
港台
| 网站 | 域名 | 图片 | 文字 | 搜索 | |
|---|---|---|---|---|---|
| 臺灣國家圖書館 (NCL Taiwan, rbook.ncl.edu.tw) | rbook.ncl.edu.tw |
✓ | |||
| 臺灣故宮博物院 (NPM Taipei) | digitalarchive.npm.gov.tw |
✓ | |||
| 漢籍全文資料庫 (Hanchi) | hanchi.ihp.sinica.edu.tw |
✓ | |||
| 臺灣華文電子書庫 | taiwanebook.ncl.edu.tw |
✓ | ✓ | ||
| 香港大学数字图书馆 (HKU) | digitalrepository.lib.hku.hk |
✓ | |||
| 香港科技大学图书馆 (HKUST) | lbezone.hkust.edu.hk |
✓ |
欧美图书馆
| 网站 | 域名 | 图片 | 文字 | 搜索 | |
|---|---|---|---|---|---|
| 哈佛大学图书馆 (Harvard) | curiosity.lib.harvard.edu |
✓ | |||
| 普林斯顿大学图书馆 (Princeton) | dpul.princeton.edu |
✓ | |||
| 斯坦福大学图书馆 (Stanford) | searchworks.stanford.edu |
✓ | |||
| 柏克莱加州大学东亚图书馆 (Berkeley) | digicoll.lib.berkeley.edu |
✓ | |||
| 美国国会图书馆 (Library of Congress) | loc.gov |
✓ | |||
| 牛津大学博德利图书馆 (Bodleian) | digital.bodleian.ox.ac.uk |
✓ | |||
| 剑桥大学数字图书馆 (CUDL) | cudl.lib.cam.ac.uk |
✓ | |||
| 梵蒂冈宗座图书馆 (DigiVatlib) | digi.vatlib.it |
✓ | |||
| 大英图书馆 (British Library) | bl.uk |
✓ | |||
| 法国国家图书馆 (BnF Gallica) | gallica.bnf.fr |
✓ | |||
| 柏林国立图书馆 (Staatsbibliothek zu Berlin) | digital.staatsbibliothek-berlin.de |
✓ | |||
| 巴伐利亚州立图书馆 (BSB) | digitale-sammlungen.de |
✓ | |||
| 奥地利国家图书馆 (ONB) | viewer.onb.ac.at |
✓ | |||
| 史密森尼学会 (Smithsonian) | ids.si.edu |
✓ |
通用
| 网站 | 域名 | 图片 | 文字 | 搜索 | |
|---|---|---|---|---|---|
| 维基共享资源 | commons.wikimedia.org |
✓ | ✓ | ||
| 维基文库 | zh.wikisource.org |
✓ | ✓ | ||
| Internet Archive | archive.org |
✓ | ✓ | ||
| Generic IIIF | 任意 IIIF Manifest URL | ✓ |
安装
方式一:下载可执行文件(推荐)
前往 Releases 下载对应平台的文件,无需安装 Python:
| 文件 | 说明 |
|---|---|
bookget-cli-windows.exe |
Windows 命令行工具,双击运行 |
bookget-cli-macos |
macOS 命令行工具 |
bookget-ui-windows.exe |
Windows 图形界面,双击打开浏览器操作 |
下载后可先跑一次自检,确认这份可执行文件依赖齐全:
bookget-cli selftest
注意:识典古籍需要额外安装浏览器内核。 exe 里不包含 Playwright/Chromium (体积过大),所以用 exe 下载识典古籍会提示缺少浏览器。需要下载识典的, 请改用下面的 pip 方式并执行
playwright install chromium。其余 36 个站点 不受影响,exe 可直接使用。 |bookget-ui-macos| macOS 图形界面 |
macOS 用户首次运行需赋予执行权限:
chmod +x bookget-cli-macos
方式二:pip 安装
需要 Python 3.10 或更高版本。
pip install bookget
如需下载识典古籍(需要浏览器自动化绕过反爬):
pip install "bookget[browser]"
playwright install chromium
使用方法
图形界面(bookget-ui)
双击运行 bookget-ui,自动打开浏览器,在网页中操作即可。
或通过命令行启动:
bookget serve
交互模式(bookget-cli)
直接运行 bookget(或双击 bookget-cli),按提示逐步操作:
=======================================================
bookget — 古籍下载工具
=======================================================
请输入书目 URL(输入 q 退出): https://www.shidianguji.com/book/v3/1001
✓ 已识别站点:识典古籍
下载目录 [C:\Users\xxx\Downloads\bookget]:
并行数量 [3]:
正在探索书目结构……
标题:周易
节点:12 已完成:0
开始下载所有节点?[Y/n]:
下载完成后自动回到输入界面,可继续下载其他古籍。按 q 或 Ctrl+C 退出。
命令行模式
下载古籍
# 基本下载
bookget download "URL" -o ./output
# 增量下载(支持断点续传)
bookget download "URL" -o ./output --incremental --concurrency 3
# 只下载图片,不下载文字
bookget download "URL" -o ./output --no-text
# 只下载文字
bookget download "URL" -o ./output --no-images
批量下载
一次下载多本。每本各自存进 -o 目录下以书籍 ID 命名的子目录;
其中一本失败不会中断整批,末尾打印汇总。
# 直接给多个 URL
bookget download "URL1" "URL2" "URL3" -o ./output
# 从文件读取,每行一个 URL(# 开头为注释)
bookget download --url-file urls.txt -o ./output
# 失败的 URL 会写进 <输出目录>/failed_urls.txt,可直接重跑
bookget download --retry-failed ./output/failed_urls.txt -o ./output
urls.txt 形如:
# 论语
https://ctext.org/analects
https://www.shidianguji.com/zh/book/SBCK001
整批有失败时进程退出码为 1,方便脚本判断。
结构发现与分步下载
# 发现书目结构(不下载)
bookget discover "URL" -o ./output
# 展开某个节点
bookget expand "URL" -o ./output --node NODE_ID
搜索与匹配
# 在指定站点搜索书名
bookget search --site ctext --query "周易"
# 精确匹配书名和作者
bookget match --site shidianguji --title "周易" --authors "孔颖达"
其他命令
# 获取书籍元数据
bookget metadata "URL"
# 查看所有支持的网站
bookget sites --list
# 检查某个网址是否支持
bookget sites --check "URL"
常用选项
| 选项 | 说明 |
|---|---|
-o, --output DIR |
下载保存目录 |
--incremental |
增量下载,支持断点续传 |
--concurrency N |
同时下载数量(默认 1) |
--no-images |
跳过图片 |
--no-text |
跳过文字 |
--section NODE_ID |
只下载指定章节 |
--json |
以 JSON 格式输出结果 |
-q, --quiet |
安静模式,减少输出 |
配置
可通过环境变量调整默认行为:
| 变量 | 说明 | 默认值 |
|---|---|---|
GUJI_OUTPUT_DIR |
下载目录 | ./downloads |
GUJI_CONCURRENT_DOWNLOADS |
同时下载数量 | 4 |
GUJI_DEBUG |
调试模式 | false |
也可以用配置文件:
bookget --config config.json download "URL"
从源码构建
如果你想自行构建可执行文件:
# 克隆仓库
git clone https://github.com/open-guji/bookget-py.git
cd bookget-py
# 安装依赖
pip install -e ".[dev]"
pip install pyinstaller
# 安装前端依赖
cd ui && npm install && cd ..
# 构建两个可执行文件
python packaging/build.py
# 或只构建其中一个
python packaging/build.py cli # 只构建 bookget-cli
python packaging/build.py ui # 只构建 bookget-ui(会自动构建前端)
构建产物在 dist/ 目录下。
许可证
Metadata
Release files for bookget 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bookget-0.4.0.tar.gz | 213.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bookget-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 427.4 kB
Release files / bookget-0.4.0.tar.gz
| Download URL | bookget-0.4.0.tar.gz |
|---|---|
| Size | 213.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f1275a263a0ad247d15b0ee2afbed09a7132a92f4fd6d87a716a46e343df523b
|
|
BLAKE2b-256 checksum How to use checksums |
491861e2ff2fa941e28e0aa4aa3dcebc93470d0587fc57176ef922b03a55623a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / bookget-0.4.0-py3-none-any.whl
| Download URL | bookget-0.4.0-py3-none-any.whl |
|---|---|
| Size | 213.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d62310c8316163f461dc44f527e95d3d0812884ab6fa67be990fe901fe53fb5e
|
|
BLAKE2b-256 checksum How to use checksums |
be629415c5cd07e29a217f6226085256144ffccf84021b8bea8dbedffbd88897
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log