最近在NAS系统中使用Docker容器calibre-web搭建了自己的个人图书馆,在获取图书元数据的时候发现豆瓣源API已经失效了,网上提供的apikey都已经不能用了。豆瓣网页上基本也是防爬虫的,只有少部分网页没有做防爬处理,不过也是有访问频率限制的,当然对于个人用户也是够用了。
因此自己开发了一个简单的适合calibre-web的程序,发布到docker平台,对个人用户获取简单的书籍元数据也是够用了。
豆瓣API文档: http://www.doubanapi.com/book.html
发布地址
Github地址
基于SpringBoot+Jsoup开发,只有比较简单的几个类。
源码地址:https://github.com/fugary/simple-boot-douban-api
Docker地址
发布到Docker环境:https://registry.hub.docker.com/r/fugary/simple-boot-douban-api/
本地运行:
docker pull fugary/simple-boot-douban-api:latest
docker run -it -p 8085:8085 fugary/simple-boot-douban-api
通过IP地址访问:http://ip_address:8085/v2/book/search?q=深入理解计算机系统
访问速度不是很快,毕竟要访问列表页和详情页,默认是获取列表中的3本书籍,太多可能访问频率太高会被屏蔽。
群晖calibre-web配置
安装simple-boot-douban-api
首先需要在群晖系统的Docker套件中安装。
Docker套件的注册表中搜索simple-boot-douban-api
,双击下载
下载容器:
image配置自动启动:
image配置端口,本地端口根据实际情况设置,如:8085
image完成后启动
Calibre-web中配置
找到calibre-web容器(目前使用的是technosoft2000/calibre-web
),查看详情:
进入终端机:
image-20210819153608848然后编辑文件使用vi命令。
vi /calibre-web/app/cps/static/js/get_meta.js
# 找到 var douban = "https://api.douban.com"; 替换成自己的NAS_IP地址
var douban = "http://NAS_IP:8085";
# 如果不熟悉vi命令,这里提供一种更快的替换的方式,使用sed命令:
sed -i 's#https://api.douban.com#http://NAS_IP:8085#g' /calibre-web/app/cps/static/js/get_meta.js
# 注意上面的文件路径是technosoft2000/calibre-web镜像的路径,如果使用的是linuxserver/calibre-web,路径是
# /app/calibre-web/cps/static/js/get_meta.js
image-20210819153736233
然后刷新页面,再次通过页面访问【获取元数据】
image-20210819153848204可以看到源是Douban Books,获取成功了。
网友评论