Book118文档下载器:3分钟把文档存成PDF
【免费下载链接】book118-downloader基于java的book118文档下载器项目地址: https://gitcode.com/gh_mirrors/bo/book118-downloader
想把Book118网站上的文档存到本地?官网只给免费预览:只能看到一部分页、图片小,逐页截图又乱又不齐。Book118文档下载器是一个用Java写的小工具,输入文档编号,它会把文档所有可预览的页面抓下来,拼成PDF存到你的本地磁盘上。
📥 它替你省了什么麻烦
第一,替你干逐页截图的活。输入编号后,工具把所有可预览的页面一张张抓全,拼成一份能直接读、能打印的PDF,你不用再一页页点"下一页"。
第二,文件留在自己手里。整个过程都在你电脑上跑:图片下到临时目录、在本地拼成PDF,跑完自动删掉临时文件,文档内容不经过任何第三方转换服务。
第三,省等待。解析时它分批向预览接口要页面,终端实时显示已下载的页数,进度往上爬,你心里就有数。
和别的方式比一比:
| 手动截图 | 在线转换 | Book118下载器 | |
|---|---|---|---|
| 耗时 | 逐页操作,慢 | 中等 | 输个编号自动跑 |
| 质量 | 马赛克、不统一 | 可能被压缩 | 保留预览图 |
| 数据去向 | 自己手里 | 对方服务器 | 全在本地 |
⚡ 三步拿到第一个PDF
第一步,检查环境,需要Java 8及以上:
java -version第二步,克隆代码并构建,产物是一个可执行的jar:
git clone https://gitcode.com/gh_mirrors/bo/book118-downloader cd book118-downloader && mvn package不想自己构建的话,也可以直接拿项目release里预编译好的版本,Windows上双击run.bat就能跑。
第三步,运行并输入文档编号。编号就是文档页URL结尾的那串数字,比如113657916.shtm里的113657916:
java -jar target/book118Downloader-V2020.jar下载开始后,终端会一页一页刷进度,提示"生成完成"时,按文档编号命名的PDF已经躺在out/目录里了。
【此处插入图片:Book118文档下载器终端输入文档编号并输出下载进度的截图】
【此处插入图片:Book118文档下载器在out文件夹生成的按编号命名的PDF文件】
🔍 它是怎么下载文档的
说白了,这个工具就像一个替你翻预览页的人。它先用浏览器的口吻请求预览页,从页面里读出预览所需的凭证(项目ID、访问令牌之类),再照着网站自己预览时走的那条路线,一页一页要预览图——每次请求之间还故意睡1秒,免得被服务器嫌"太快"拦下来。图片收齐后,按页码排好序,再逐页拼成PDF。
入口是src/main/java/me/rainking/BookDownloader.java,只负责读入编号、启动流程;解析预览信息、抓页面图、下载这些脏活在src/main/java/me/rainking/DocumentBrowser.java里完成;最后把图片拼成PDF的src/main/java/me/rainking/PdfGenerator.java,用的是iTextPDF库。
⚖️ 适合谁,不适合谁
适合:想收藏论文的学生、攒资料的职场人、任何想把可预览文档离线读的人——只要文档在官网上有免费预览,它就能干活。
不适合:收费才能预览的文档,它拿到的只有官网允许免费看的那部分,想要付费全文它帮不上你,付费内容也建议走官方渠道;PPT类文档暂不支持;另外没有批量模式,一个编号跑一次,多份文档得排队来。
如果你手头正存着一份Book118文档想离线看,今晚就可以照上面试一次:一个编号、一条命令,PDF落在out文件夹里。要是哪天预览接口改版导致解析失败,先去看下项目的issues——这类小工具,用久了总要偶尔维护一下。
【免费下载链接】book118-downloader基于java的book118文档下载器项目地址: https://gitcode.com/gh_mirrors/bo/book118-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考