← 返回
未分类

书库扫描入库

扫描本地电子书库,自动提取元数据、分类整理、联网搜索书籍简介,生成Obsidian笔记的完整工作流。支持EPUB/MOBI/AZW3/PDF格式。
本地电子书库扫描,元数据自动提取与分类,联网搜索简介,生成Obsidian笔记。支持EPUB/MOBI/AZW3/PDF格式。
fatblue
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 303
下载
💾 0
安装
1
版本
#latest

概述

Book Library Scanner - 书库扫描入库技能

将本地电子书库扫描、分类整理、搜索简介、导入Obsidian的完整工作流。

触发场景

当用户提到以下需求时使用此技能:

  • 扫描电子书库、整理书库
  • 给书籍补充简介、搜索书籍信息
  • 导入Obsidian、建立书库目录
  • book library, scan books, organize ebooks

工作流程

1. 扫描书库目录

# 扫描指定目录,提取epub/mobi/azw3/pdf格式的书籍元数据
# 支持读取书名、作者、分类等信息

关键函数

  • scan_book_directory(book_dir) - 扫描书库目录
  • extract_metadata(filepath) - 提取单本书的元数据

2. 分类整理

分类规则

  • 根据书名/作者中的国家标注分类:如"(美)"、"(德)"、"(英)"、"(法)"等
  • 默认分类:文学、历史、心理学、哲学、经济、科学技术、其他
  • 目录结构:分类/国家/作者/书名.md

3. 搜索书籍简介

API调用

使用元宝搜索API搜索书籍简介,每个请求间隔2秒避免限流。

Windows编码处理

  • PowerShell子进程传中文参数时,用UTF-8编码
  • Python读取输出时用 decode('utf-8', errors='ignore')

4. 生成Obsidian笔记

每本书生成一个Markdown文件,包含:

  • 书名、作者、分类、国家、格式
  • 内容简介(从网络搜索获取)
  • 来源链接

配置参数

参数说明默认值
------------------
book_dir书库源目录必填
output_dir输出目录Required
batch_size每批处理数量500
delay_secondsAPI请求间隔2
save_every每...本保存一次100

文件结构

书库/
├── 书库索引.json        # 主索引(含全部书籍信息)
├── 书库总目录.md         # 总览文档
├── 文学/               # 分类文件夹
│   ├── 中国/           # 国家文件夹
│   │   ├── 鲁迅/       # 作者文件夹
│   │   │   ├── 呐喊.md
│   │   │   └── ...
│   └── ...
└── ...

索引文件格式

{
  "version": "1.0",
  "scan_date": "2026-04-18",
  "books": [
    {
      "title": "书名",
      "author": "作者",
      "category": "文学",
      "country": "中国",
      "format": "EPUB",
      "filename": "原文件名.epub",
      "filepath": "原文件路径",
      "introduction": "内容简介",
      "intro_source": "来源URL"
    }
  ]
}

技术要点

Windows编码问题

Python调用PowerShell传递中文参数时:

result = subprocess.run(
    ['powershell', '-File', script_path, '-Keyword', keyword],
    capture_output=True,
    timeout=30
)
output = result.stdout.decode('utf-8', errors='ignore').strip()

文件名安全处理

import re
safe_name = re.sub(r'[<>:"/\\|?*]', '', original_name)[:50]

批量处理检查点

每批完成后保存进度,支持断点续传:

checkpoint = {
    'last_batch': batch_num,
    'total_found': found_count,
    'last_index': last_processed_index,
    'timestamp': datetime.now().isoformat()
}

已知问题

  1. 拼音书名:部分书籍元数据提取失败时,会使用文件夹拼音名作为书名。需要后续人工处理或更复杂的转换逻辑。
  1. 搜索成功率:后续批次的搜索成功率可能下降(80-99%),因为冷门书籍的搜索结果较少。
  1. API限流:每请求间隔2秒,批量处理时需要较长时间(每500本约35-45分钟)。

示例用法

用户: 帮我扫描 D:\LWbook 书库,整理后导入 Obsidian

执行步骤:
1. 扫描 D:\LWbook 目录
2. 提取书籍元数据
3. 按分类→国家→作者整理
4. 搜索每本书的简介
5. 生成 Obsidian Markdown 笔记
6. 建立索引文件

相关文件

  • scripts/book_scanner.py - 书库扫描脚本
  • scripts/batch_search.py - 批量搜索简介脚本
  • scripts/generate_notes.py - 生成Obsidian笔记脚本
  • scripts/search_book.ps1 - PowerShell搜索封装

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 21:47 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

ontology

oswalpalash
类型化知识图谱,用于结构化智能体记忆与可组合技能。支持创建/查询实体(人员、项目、任务、事件、文档)及关联...
★ 713 📥 243,958
developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 670 📥 324,286
ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,360 📥 318,618