status
date
slug
summary
category
tags
icon
password
写在前面
缘起是因为家妹需要翻阅一些线上图书馆的古籍书籍进行研究学习,然而这些图书馆只提供了在线阅读的功能,并不能整本下载,甚至也不能单页下载,右键也无法另存为。于是乎,好于折腾的我出现了。
一共是三个图书馆,分别是
经过分析和研究,发现都没有能直接下载整本的方式,只能曲线救国,如果单页是图片,则把所有的图片下载后合并成PDF,如果单页是PDF,则把所有的PDF下载后合并成PDF。云南古籍数字图书馆属于前者,云南省地方志属于后者。
既然思路清晰,接下来就是具体操作和代码。其中下载主要使用shell 脚本,pdf 相关操作则使用 WPS 和 PDF Expert。
大学数字图书馆国际合作计划倒是有些难度,并且目前好像网站挂了,不能研究。
操作
云南古籍数字图书馆
云南古籍数字图书馆需要账号登陆,公网也可访问和注册。
注册成功后访问具体书籍的详情页天啟]滇志三十三卷

点击在线浏览后,显示阅读界面

通过观察发现链接中有明确的书籍id,即29010711-0001
右键打开网页检查视图下的网络标签,发现每一页都是一张图片,图片的链接例如:http://msq.ynlib.cn/medias/29010711-0012/thumbnails/0150/large.jpg
这个图片链接甚至是不用登陆的,并且是存在规律的
其中
bookId
就是上面的书籍id,index
就是第几页,然而再通过上面图片知道每本书有几页,直接就可以批量下载了。
那么,使用 shell 脚本就很简单了。这里因为一个bookId代表一本书,其实是其中的一卷,但要下载全部的卷的话,外层要再加一个循环就行。最终简单的代码如下:
下载下来的图片再使用 WPS 国际版的图片合成 PDF 工具即可


云南省地方志
云南省地方志也需要账号,但公网也可以访问,直接注册就好。
打开万历云南通志,会发现只要知道链接,不登录其实也能访问和浏览。

打开后如下图所示,看着像是 PDF,右键审查一看果然是。


审查后发现左侧缩略图都是图片,右侧正文是 pdf 容器,但每一页是一个单独的 PDF 链接。并且这个链接不是像之前图片那样简单的拼接,它是通过一个接口获取真正的 PDF 链接然后再进行渲染的,但这个接口也有规律可循。
比如第一页的 PDF 接口是:
会响应如下
这个 url 的值就是真正的第一页 PDF 下载地址,那么代码也就是批量一下的事,当然还是得查看下总共有多少页。
下载完 PDF,合并的事就用 PDF Expert 合并以下就行。
最后
整理下文件,合并下文件,分享给家妹。

- 作者:LXX
- 链接:https://lxx.im/article/online-library-book-download
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。