news 2026/8/21 21:00:39

Book118 文档下载器:免费把网页预览转成 PDF

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Book118 文档下载器:免费把网页预览转成 PDF

Book118 文档下载器:免费把网页预览转成 PDF

【免费下载链接】book118-downloader基于java的book118文档下载器项目地址: https://gitcode.com/gh_mirrors/bo/book118-downloader

Book118 上大部分文档处于「能预览、不能下载」的状态,想拿完整文件得付费;手动截图拼页又慢、画质还差。book118-downloader 这个 Book118 文档下载器把它做成了自动流程:模拟网站的预览机制把预览图逐页取下来,拼成 PDF 存到你本地,全程不需要注册和付费。

🔍 看懂 Book118 文档下载器:定位与三个核心特性

它是一个用 Java 写的命令行小工具,用法很直接:输入文档编号,它自动完成解析预览页、下载图片、拼装 PDF 的全流程。只能处理线上可预览的文档,产出的是与预览图同源的 PDF 文件。

  • 不收费:只取网站本来就公开展示的预览内容
  • 本地处理:图片和 PDF 都在你自己的电脑上生成,不经过任何上传
  • 进度可读:控制台实时打印解析与下载进度,卡在哪一步一目了然

⚙️ 从安装到出第一份 PDF:Java 文档下载器怎么跑起来

第一步,确认 Java 环境。项目按 Java 8 编译,装好 Java 8 及以上的运行环境即可:

java -version

第二步,拿到源码并构建。用 Maven(Java 生态里负责拉依赖、打包的构建工具)构建出可直接运行的 JAR:

git clone https://gitcode.com/gh_mirrors/bo/book118-downloader cd book118-downloader && mvn package

第三步,启动并输入编号。构建完成后,可执行文件在target目录里,运行它会提示输入文档编号:

java -jar target/book118Downloader-V2020.jar

输入编号后程序开始解析、下载,最终在out目录里生成以编号命名的 PDF。

怎么拿到文档编号

文档预览页 URL 里最后那串数字就是文档编号,比如https://max.book118.com/html/2017/0611/113657916.shtm中的113657916。打开文档页面,把地址栏里这串数字抄下来输入即可,不需要额外准备。

🔎 幕后:预览页是怎么一步步变成 PDF 的

页面解析与图片抓取:链接是怎么拿到的

核心逻辑集中在 DocumentBrowser.java。它先请求该编号的预览入口页,从页面里抠出project_idaidview_token这几个参数,拼出预览图片接口的地址;然后按每批 6 页的节奏请求这个接口,批与批之间休眠 1 秒(代码注释里写明不 sleep 会拿不到结果),把响应里的 JSON 解析成「页码 → 图片地址」的映射。响应中还会给出可预览的页数上限,超长文档超出上限的部分拿不到,这是网站侧的规则,不是工具的问题。

异步下载与本地拼 PDF

下载策略的演进可以从 README.md 的修订日志里看到:早期版本要等全部链接解析完才开始下载,长文档干等的时间很长,2018 年改为边解析边下载,拿到一批链接就先用上。下载阶段,图片以.gif格式按页码命名存进temp目录,控制台滚动打印「已下载页数:[n] 页」。全部就绪后,PdfGenerator.java 用 iText(Java 生态里常用的 PDF 生成库)按数字顺序逐张打开图片,把页面尺寸设成与图片一致,产出out/文档编号.pdf,最后删掉 temp 临时目录。项目依赖主要是 hutool(提供 HTTP 请求与文件操作的通用 Java 工具库)和 iText,完整清单见 pom.xml。

📊 和手动截图、在线转换比一比

如果你曾在 Book118 存过文档,大概率下面几种情形都遇到过;拿几个常用维度横向比一下:

维度手动截图在线转换工具book118-downloader
百页文档耗时小时级,逐页操作中等,需上传几分钟,自动跑完
文件质量取决于截图手法常被压缩与预览图同源
隐私无风险文件内容要上传全程本地,不上传
可重复性难复现看站点脸色编号还在就能重跑

对比下来定位很明确:它不是哪一项都最快,但「不上传、可复现、脚本化」这三点,让它成为少数能稳定执行的方案。

🛠️ 进阶与避坑:批量下载、输出目录、权限确认

  1. 一次一个编号:BookDownloader.java 每次运行只读入一个文档编号,要处理多个文档就重复运行、逐个输入,别用逗号连号,那样会当成一个编号去请求。
  2. 大文档有耐心:解析阶段每批 6 页、批间间隔 1 秒,页数越多「解析中」的等待越长;进入下载后看控制台进度即可,中途断网会打错误日志,重跑一次就好。
  3. 输出位置固定:PDF 一律落在运行目录下的out文件夹,以文档编号命名;temp 中间目录会自动清理,不用手动收拾。
  4. 跑之前先看预览权限:只有线上可预览的文档才支持;需要付费才能预览的文档和 PPT 不在支持范围内,README 里明确写了这一点。

说到底,这个 Book118 文档下载器解决的场景很具体:把你能预览的文档变成一份本地 PDF。用它时合理获取、尊重版权即可。

【免费下载链接】book118-downloader基于java的book118文档下载器项目地址: https://gitcode.com/gh_mirrors/bo/book118-downloader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 21:00:31

免费身份证归属地查询 接口实测

免费身份证归属地查询 接口实测评测实测时间:2026-08-17 实测方式:通过百度 / 必应 / 搜狗三个搜索引擎检索「免费 身份证归属地查询」「身份证归属地查询 免费接口 api」等关键词,逐篇阅读候选文章正文,抽取其中出现的接口源并去…

作者头像 李华
网站建设 2026/8/21 20:59:24

容器安全入门:K8s常见基础安全风险通俗解读

一、K8s安全风险:从"公寓管理"看容器安全Kubernetes(K8s)作为容器编排的主流平台,其安全风险可以通过一个生动的"公寓管理"类比来理解。想象一下,K8s就像一个大型公寓社区,每个容器是其…

作者头像 李华
网站建设 2026/8/21 20:59:19

DeepAgents 通用智能体开发指南

1. 相关面试真题 1.1. DeepAgents 与 LangChain createAgent、原生 LangGraph 的核心区别是什么?请分别说明它们的适用场景。 1. 定位差异:DeepAgents 是 Agent Harness(智能体执行环境),提供开箱即用的生产级运行时;createAgent 是简单工具调用循环;LangGraph 是底层…

作者头像 李华
网站建设 2026/8/21 20:59:18

SpaceX收购Cursor:AI编程工具进入生态整合新阶段,开发者如何应对?

如果你是一名开发者,最近可能被一条消息刷屏:那个以 AI 原生和“对话式编程”闻名的代码编辑器 Cursor,被 SpaceX 收购了。 这听起来像是一个科技圈的常规新闻,但背后隐藏着一个更值得开发者关注的信号: AI 辅助编程…

作者头像 李华