别再一页页截图了,这款开源工具让你免费下载 Book118 文档
【免费下载链接】book118-downloader基于java的book118文档下载器项目地址: https://gitcode.com/gh_mirrors/bo/book118-downloader
凌晨一点,电脑屏幕泛着冷光。赶论文的你在 Book118 上找到一份几乎完美的行业报告,可它只让你预览前 20 页,剩下的内容被"付费解锁"的灰色挡住。手动截图?六十多页截到手指发酸,画质还一塌糊涂。这个夜晚,几乎每个做研究的人都经历过。
好在开源社区早有解法——book118-downloader就是这样一款基于 Java 的免费文档下载工具:输入文档编号,它就能把网站上所有可预览的页面自动抓取下来,合并成一份完整的 PDF,帮你实实在在突破下载限制。
从拿到编号到 PDF 落地,一次完整走通
整个流程短到不像话,跟着走一遍就知道。
第一步,确认环境。项目运行在 Java 8 及以上环境,先在命令行验证一下:
java -version如果提示"找不到命令",先装好 JDK/JRE 8+ 再继续。
第二步,获取项目代码并打包:
git clone https://gitcode.com/gh_mirrors/bo/book118-downloader cd book118-downloader mvn clean package等 Maven 拉完依赖,target目录下就会生成可执行的 JAR 包。
第三步,找到文档编号。这个编号其实就藏在网页地址里——比如https://max.book118.com/html/2017/0611/113657916.shtm,末尾的113657916就是它。
第四步,运行程序:
java -jar target/book118Downloader-V2020.jar按提示输入编号回车,屏幕上会依次出现"开始解析""开始下载""生成完成"。打开同目录下的out文件夹,一份以编号命名的 PDF 已经静静躺在那里。
全程没有登录、没有验证码、没有繁琐配置——从启动到拿到文件,可能比你在网站里翻找下载按钮还快。
凭什么是它:两个值得说道的细节
同类脚本不少,但这个项目有两个地方很打动我。
第一,它"模拟"而不是"破解"。它的原理是还原网页预览时浏览器做的事情:打开预览页解析出PREVIEW_DATA,从里面抠出 project_id、view_token 等参数,再逐页调用网站自己的预览图片接口拿图。它没有攻破任何系统,只是把你手动翻页的动作自动化了——这也是为什么它能保持克制,只下载"能预览"的部分,从设计上就不碰 PPT 和完全付费的文档。
第二,清晰度不打折。抓取的是网站原图,再由PdfGenerator按页号排序、用 iText 按每张图的原始尺寸合成 PDF。预览是什么质量,得到的 PDF 就是什么质量,不会出现二次压缩糊成一片的尴尬。
想研究实现的读者,重点看src/main/java/me/rainking/下的三个文件:DocumentBrowser.java负责与服务器通信、抓全部预览图地址,PdfGenerator.java负责把图片合成 PDF,BookDownloader.java是程序入口。对想学 Java 网络编程的人来说,这是一份思路清晰、规模刚好能读完的小型案例。
老用户的几条私藏经验
- 页数多的时候,"开始解析"会停留比较久。代码里故意在两次请求之间休眠一秒,太频繁会被网站限流,耐心等就好。
- 网络波动导致中途失败时,先别急着改配置,重新跑一遍往往就通了。
- 批量场景下,建议按顺序逐个下载,避免短时间内请求过于密集。
- 收藏夹里放几个常用的文档编号,配合
out目录按编号命名的习惯,文件归档会清爽很多。
新手最容易踩的坑
- 预览不了的文档下载不了。网页上直接提示"试读结束"或根本无法预览的,工具也救不了它。先确认地址能在浏览器里正常预览,再输入编号。
- PPT 不在支持范围内。项目定位就是图文类 PDF 文档,别拿 PPT 链接来试。
- 忘了装 Java。双击
run.bat没反应,八成是缺 JRE,先解决运行环境再排查其他问题。 - 编号抄错。编号在 URL 最末尾,复制时别带上
.shtm后缀或多余字符。
用之前,请记得这几条底线
工具能降低门槛,但使用边界要靠自己把握:建议只用于个人学习、论文参考这类正当用途,不要拿去牟利或批量倒卖;对于真正有价值的原创内容,还是优先通过正规渠道支持作者。技术无罪,用法有道。
写在最后
一句话记住它:把 Book118 里能看的,变成你电脑里能存的。
需要的同学,照着上面的步骤,十分钟就能跑通第一次下载;对源码感兴趣的朋友,也欢迎到项目仓库提 Issue、参与改进——让一个好用的开源工具变得更好用,本身就是件很酷的事。
【免费下载链接】book118-downloader基于java的book118文档下载器项目地址: https://gitcode.com/gh_mirrors/bo/book118-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考