Book Fetch

📚 一键搜书、自动入库

自动化电子书获取工具,从 Anna's Archive 搜索下载 EPUB/PDF 并直传 MEGA 云盘,适合快速搭建个人数字图书馆。

收藏
4.7k
安装
1.2k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

book-fetch 是一个命令行电子书自动化工具,整合 Anna's Archive 搜索、LibGen 镜像下载与 MEGA 云存储上传三大环节。用户只需输入书名与作者,工具即自动完成从检索到入库的全流程。

典型命令:

.venv-books/bin/python3 skills/book-fetch/scripts/book_fetch.py "The Great Gatsby Fitzgerald"

支持 --format pdf 指定格式、--dry-run 仅预览搜索结果、--pick 交互或指定结果索引。下载文件暂存 /tmp/books/ 后,通过 rclone 自动上传至 mega:/Books/

显著优点

  • 全自动化链路:搜索→解析→下载→上传一键完成,无需手动干预多个站点
  • 双源备份机制:优先 LibGen 镜像,失败时回退 Anna's Archive 直链,提升成功率
  • 轻量部署:单 Python 脚本 + venv 依赖,配合 hosts 绕过 DNS 封锁即可运行
  • 开源可审计:代码托管 GitHub,流程透明

潜在局限与风险

| 问题 | 说明 |
|------|------|
| 版权灰色地带 | Anna's Archive 与 LibGen 均涉及版权争议内容,使用可能违反当地法律 |
| 新书覆盖不足 | 2023 年后出版书籍常缺失 LibGen 镜像,需依赖 AA 慢速下载或会员通道 |
| 单点失效风险 | hosts 硬编码 IP 若变更需手动维护;MEGA/rclone 配置依赖个人账户 |
| 速率限制 | AA 慢速下载有频控,大批量获取效率受限 |
| VPS 网络依赖 | 工具预设运行在特定 VPS 环境,迁移需重新适配 hosts 与 rclone |

适合人群

  • 拥有 MEGA 账户、希望自动化管理电子书库的技术用户
  • 熟悉命令行与 Python 虚拟环境配置的 self-hosting 爱好者
  • 需要批量获取公共领域或已购买纸质版的备份副本的研究人员

常规风险提示

⚠️ 法律合规:确认所在司法管辖区对影子图书馆的使用规定,机构网络可能触发版权告警
⚠️ 账户安全:MEGA 凭据与 rclone 配置需妥善保管,避免写入版本控制

⚠️ 来源可信:下载文件未经内容安全扫描,建议本地杀毒后再打开

安全解读

核心用法

book-fetch 是一款自动化电子书获取与归档工具,用户仅需提供书名与作者信息,即可自动完成从搜索到云端存储的全流程。执行命令格式为 .venv-books/bin/python3 skills/book-fetch/scripts/book_fetch.py "TITLE AUTHOR",支持 --format pdf 指定格式、--dry-run 预览搜索结果、--pick 交互式或指定索引选择结果等灵活选项。

技术实现上,该工具构建了完整的下载管道:首先抓取 Anna's Archive 的搜索结果页,解析 data-content 属性提取元数据与 MD5 校验码;随后通过 MD5 详情页获取 LibGen 镜像链接,或回退至 Anna's Archive 的快/慢速下载通道;最终调用 rclone 将文件上传至 MEGA 云存储的 mega:/Books/ 目录。系统依赖 Python 虚拟环境运行,缓存目录位于 /tmp/books/

显著优点

  • 全流程自动化:将分散的搜索、下载、归档操作整合为单条命令,显著降低电子书获取的时间成本
  • 多源容错机制:优先使用 LibGen 高速镜像,失效时自动切换 Anna's Archive 备用通道,提升成功率
  • 云存储原生集成:基于 rclone 实现与 MEGA 的无缝对接,下载即归档,避免本地存储管理负担
  • 轻量可扩展:纯 Python 实现,依赖仅为 requests、BeautifulSoup4、lxml 等成熟库,易于二次开发

潜在缺点与局限性

  • 版权合规敏感:Anna's Archive 与 LibGen 涉及大量未经授权的版权内容,使用者需自行承担法律风险
  • 新书上架滞后:2023 年后出版书籍常缺失 LibGen 镜像,Anna's Archive 快速下载需付费会员资格,慢速下载存在严格速率限制
  • 外部环境依赖:必须预装配置 rclone 并绑定 MEGA 账号,VPS 环境需手动配置 hosts 文件绕过 DNS 封锁
  • 临时文件残留:下载文件缓存于 /tmp/books/ 后不会自动清理,多用户系统存在潜在数据暴露风险

适合的目标群体

  • 学术研究者:需批量获取已绝版或机构未采购的专业文献
  • 数字藏书爱好者:希望构建个人云端电子书库的技术用户
  • 知识工作者:对特定领域书籍有持续收集需求,具备基础命令行操作能力
  • 自动化流程搭建者:寻求将电子书获取整合至现有工作流的进阶用户

使用风险

性能与稳定性风险:依赖第三方站点的可用性与响应速度,Anna's Archive 与 LibGen 频繁的访问限制或封锁将直接导致功能失效。网络波动场景下缺乏自动重试机制,大文件下载中断后需重新开始。

安全与隐私风险:中等严重度的外部命令执行(subprocess.run 调用 rclone/mega-put)虽为功能必需,但若运行环境被恶意配置可能引发命令注入。下载内容未经病毒扫描直传云端,存在恶意文件传播隐患。

合规与法律风险:核心依赖的 Anna's Archive 与 LibGen 在多数司法管辖区处于版权灰色地带,使用者需自行评估当地法律法规。建议仅下载已获得合法授权或处于公有领域的作品。

运维管理风险:临时缓存目录缺乏自动清理策略,长期运行可能导致磁盘空间耗尽;依赖的 hosts 文件绕过方案在目标站点 IP 变更时将失效,需人工维护更新。

Book Fetch 内容

scripts文件夹
手动下载zip · 5.7 kB
book_fetch.pytext/plain
请选择文件