搭建Book-Searcher实现书籍检索

1/7/2023 Book-SearcherZ-LibraryIPFS书籍资源检索Calibre-Web私有书库论文资源检索

# 1. 前言

# 1.1 Z-Library简介

Z-Library是一个影子图书馆和开放获取文件分享计划,用户可在此网站下载期刊文章以及各种类型的书籍。根据Z-Library的说法,截至2022年6月12日,其共收录了10,456,034本书和84,837,646篇文章。Z-Library在其电子书搜索页面上宣称自己是“全球最大的数字图书馆”,并在文章搜索页面上称自身是“全球最大的科学文章存储库”。它原是创世纪图书馆的镜像网站,并从该图书馆获得大部分馆藏。但它的一些馆藏由用户自行上载,并且不为创世纪图书馆所收藏。该平台公开网域已于2022年11月3日遭到美国政府屏蔽。目前Z-Library官网已经不能访问了,但暗网中还有可访问的镜像站,全部资源的离线种子包也已经有人公开出来了。

# 1.2 Book-Searcher简介

项目介绍:搜索书籍索引,创建您的私人本地图书馆。不保存和提供文件,仅提供书籍搜索。

项目地址:https://github.com/book-searcher-org/book-searcher (opens new window)

Book-Searcher简介

网友分享的Demo站点:https://zlib.knat.network/ (opens new window)https://zlib.freedit.eu/ (opens new window)

# 1.3 Calibre-Web简介

项目介绍:Web应用程序,用于浏览,阅读和下载Calibre数据库中存储的电子书,可作为私有书库使用。

项目地址:https://github.com/janeczku/calibre-web (opens new window)

calibre-web简介

# 2. 基础环境搭建

以下所有服务均选择自建,我将采用Docker部署的方式,VPS系统用的是Debian 11 x86_64。

VPS的购买及配置、域名解析、Docker、Docker Compose的概念及使用...这些基本的就不再赘述了,如果不会的话见我的其他博客:VPS基本部署环境的搭建与配置 (opens new window)Docker容器化及项目环境管理 (opens new window)

# 2.1 Docker及Docker Compose环境搭建

# 2.1.1 Docker环境搭建

$ apt-get update -y && apt-get install curl -y  # 安装curl
$ curl https://get.docker.com | sh -   # 安装docker
$ sudo systemctl start docker  # 启动docker服务
$ docker version # 查看docker版本(客户端要与服务端一致)
1
2
3
4

# 2.1.2 Docker Compose环境搭建

// 下载安装docker-compose,最新版见:https://github.com/docker/compose/releases
$ sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose       
// 赋予docker-compose执行权限
$ sudo chmod +x /usr/local/bin/docker-compose
// 查看docker-compose版本号,验证是否安装成功
$ docker-compose --version
1
2
3
4
5
6

# 2.2 使用OneinStack搭建Nginx并进行配置

# 2.2.1 OneinStack简介

项目简介:OneinStack是一套部署开发环境的脚本工具,它的部署方式是纯原生部署,我主要使用里面的Nginx,用来辅助生成配置。

项目地址:https://github.com/oneinstack/oneinstack (opens new window)

# 2.2.2 使用OneinStack搭建Nginx服务

$ wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_optio
1

注:OneinStack采用编译安装的方式搭建Nginx服务,速度比较慢,请耐心等待,常用的默认目录有:

Nginx安装目录: /usr/local/nginx
Nginx配置目录:/usr/local/nginx/conf
网站数据目录:/data/wwwroot/域名
1
2
3

# 2.2.3 创建网站开启HTTPS

OneinStack 内置了 acme.sh,它会自动帮你申请 SSL 证书。

$ cd ./oneinstack
$ ./vhost.sh
1
2

配置过程的参考示例如下(示例域名为www.demo.com):

#######################################################################
#       OneinStack for CentOS/RedHat 7+ Debian 8+ and Ubuntu 16+      #
#       For more information please visit https://oneinstack.com      #
#######################################################################

What Are You Doing?
        1. Use HTTP Only
        2. Use your own SSL Certificate and Key
        3. Use Let's Encrypt to Create SSL Certificate and Key
        q. Exit
Please input the correct option: 2 【选择2(使用了Cloudfare CDN的话,可以选择自签名证书)

Please input domain(example: www.example.com): www.demo.com 【输入域名】
domain=www.demo.com

Please input the directory for the domain:www.demo.com :
(Default directory: /data/wwwroot/www.demo.com): 【回车,使用默认配置】
Virtual Host Directory=/data/wwwroot/www.demo.com

Create Virtul Host directory......
set permissions of Virtual Host directory......

Do you want to add more domain name? [y/n]: n  【输入n,不添加其他域名了】

Do you want to redirect all HTTP requests to HTTPS? [y/n]: y  【输入y,强制HTTPS】

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

Country Name (2 letter code) [CN]: 【回车】

State or Province Name (full name) [Shanghai]: 【回车】

Locality Name (eg, city) [Shanghai]: 【回车】

Organization Name (eg, company) [Example Inc.]: 【回车】

Organizational Unit Name (eg, section) [IT Dept.]: 【回车】

Do you want to add hotlink protection? [y/n]: n 【输入n,不需要防盗链保护】

Allow Rewrite rule? [y/n]: y 【输入y,允许重写规则】

Please input the rewrite of programme :
wordpress,opencart,magento2,drupal,joomla,codeigniter,laravel
thinkphp,pathinfo,discuz,typecho,ecshop,nextcloud,zblog,whmcs rewrite was exist.
(Default rewrite: other): 【回车】
You choose rewrite=other

Allow Nginx/Tengine/OpenResty access_log? [y/n]: y  【输入y,允许日志记录】
You access log file=/data/wwwlogs/www.demo.com_nginx.log

#######################################################################
#       OneinStack for CentOS/RedHat 7+ Debian 8+ and Ubuntu 16+      #
#       For more information please visit https://oneinstack.com      #
#######################################################################
Your domain:                  www.demo.com
Virtualhost conf:             /usr/local/nginx/conf/vhost/www.demo.com.conf
Directory of:                 /data/wwwroot/www.demo.com
Rewrite rule:                 /usr/local/nginx/conf/rewrite/other.conf
Self-signed SSL Certificate:  /usr/local/nginx/conf/ssl/www.demo.com.crt
SSL Private Key:              /usr/local/nginx/conf/ssl/www.demo.com.key
SSL CSR File:                 /usr/local/nginx/conf/ssl/www.demo.com.csr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

配置完成后,修改一下配置文件

$ vim /usr/local/nginx/conf/vhost/www.demo.com.conf
1

server模块删除内容:

  location ~ [^/]\.php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
  }
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
  }
    location /.well-known {
    allow all;
  }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

server模块新增内容:

location / {
  proxy_set_header HOST $host;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://demo;  # 与下面 upstream 的名称一致即可
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
  proxy_pass http://demo;  # 与下面 upstream 的名称一致即可
  expires 30d;
  access_log off;
}
location ~ .*\.(js|css)?$ {
  proxy_pass http://demo;   # 与下面 upstream 的名称一致即可
  expires 7d;
  access_log off;
}
location ^~ /.well-known/acme-challenge/ {
  default_type "text/plain";
  allow all;
  root /data/wwwroot/www.demo.com/;  # 把路径换一下
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

与server模块同级新增内容:

upstream demo {
  server 127.0.0.1:7070;  # 7070换成自己的反向代理端口号
}
1
2
3

# 3. Book-Searcher书籍检索

# 3.1 搭建Book-Searcher书籍检索

Step1:创建Book-Searcher挂载映射文件

$ cd /root/docker  
$ mkdir book-searcher && cd book-searcher
1
2

Step2:编写 docker-compose.yml (opens new window)

version: '3'

services:
  book-searcher:
    image: ghcr.io/book-searcher-org/book-searcher:latest
    container_name: book-searcher
    restart: always
    ports:
      - "7070:7070"
    volumes:
      - ./index:/index
1
2
3
4
5
6
7
8
9
10
11

Step3:拉取Z-Library书库索引文件

项目地址:https://github.com/zlib-searcher/index (opens new window)

$ cd /root/docker/book-searcher
$ wget https://github.com/zlib-searcher/index/releases/download/0.8.0/index_0.8.0.zip
$ unzip -o -d /root/docker/book-searcher/index /root/docker/book-searcher/index_0.8.0.zip
1
2
3

注:原作者没有将Z-Library书库索引文件放置到镜像里,如果没有自己挂载进去的话,搭建后的服务什么都搜不到。

另注:0.9.0及之后,原作者将该索引文件的仓库删除了,需要的可以从 Cmj's OneDrive -- zlib-searcher (opens new window) 下载(他从官方提供的0.8.0版本索引恢复了原始 CSV,未来也会持续发布新版本的索引)

Step4:拉取镜像构建容器

$ docker-compose up -d
1

输入http://IP:7070即可访问,如有需要,可以参考2.2节配置域名反向代理,并开启HTTPS。

# 3.2 检索下载Z-Library资源

这个IPFS网关你可以可以使用别人搭建好的。寻找可用的IPFS网关:https://ipfs-checker.1kbtool.com/ (opens new window)(由 public-gateway-checker (opens new window) 项目搭建)

寻找可用的IPFS网关

打开页面右上角的设置,配置IPFS网关,以下是找的4个可用地址。

https://cloudflare-ipfs.com
https://dweb.link
https://ipfs.io
https://dw.oho.im
1
2
3
4

注:如果没有配置IPFS网关的话,就仅能检索Z-Library资源,但不能下载。

Book-Searcher检索下载Z站书籍

# 3.3 其他检索下载Z-Library资源的方式

# 3.3.1 Z-Library官方客户端

Z-library在2023年6月21日发布公告,首次推出Windows和macOS端的Z-library客户端,现在无需在网上到处搜索可用的链接,可以直接通过启动器登录 Z-Library 下载全网的书籍。不过目前是测试版,可能存在某些不稳定的情况,可以直接使用自己的Z-library账号登录即可使用。

最新Z-library客户端下载:

# 3.3.2 第三方Z-Library镜像站

全程代理进入 https://singleogin.me (opens new window) ——注册邮箱账号&激活——获取私人链接——代理打开你的私链——正常使用Z-Library

注:这种方式注册激活后会给你生成一个专属的个人域,不要共享指向个人域的链接,把它当作密码看待。

# 4. Calibre-Web私有书库

# 4.1 搭建Calibre-Web私有书库

Step1:创建Calibre-Web挂载映射文件

$ cd /root/docker  
$ mkdir calibre-web && mkdir calibre-web/app calibre-web/books calibre-web/kindlegen calibre-web/config 
1
2

Step2: 拉取Calibre-web镜像并创建容器

docker run -itd --name=calibre-web --restart=always \
-v /root/docker/calibre-web/books:/books \
-v /root/docker/calibre-web/app:/calibre-web/app \
-v /root/docker/calibre-web/kindlegen:/calibre-web/kindlegen \
-v /root/docker/calibre-web/config:/calibre-web/config \
-e USE_CONFIG_DIR=true \
-e SET_CONTAINER_TIMEZONE=true \
-e CONTAINER_TIMEZONE=Asia/Shanghai \
-e PGID=0 \
-e PUID=0 \
-p 8083:8083 \
technosoft2000/calibre-web
1
2
3
4
5
6
7
8
9
10
11
12

输入http://IP:8083即可访问,默认用户账号为 admin,密码为 admin123,登录进去后请及时修改密码。

如有需要,可以参考2.2节配置域名反向代理,并开启HTTPS。

# 4.2 Calibre-Web的个性化配置

可根据自己的需要,对Calibre-Web进行个性化配置。

[1] 更改语言为简体中文

  • 点击admin选项卡,Language处选择 “中文(简体,中国)”。

[2] 开启图书上传功能

  • 开启图书上传功能。管理权限——编辑基本配置——勾选启用上传即可。

[3] Calibre-web主题更改

  • 个人认为默认的主题没有黑暗主题好看,可以根据自己喜好自行选择更改。管理权限——编辑界面配置——查看配置——主题,选择黑暗主题

calibre-web

# 5. 文献及书籍资源检索

# 5.1 文献在线阅读

建议使用 ReadPaper (opens new window) 来阅读文献做笔记,但是这里收录的论文不太全。

ReadPaper

# 5.2 文献检索下载

# 5.2.1 外文文献

列举的这几个外文文献的网站都需要翻墙访问(设置全局代理,规则分流可能仍然无法访问)

首选:使用 SCI-HUB (opens new window) 破解下载 IEEE (opens new window) 的外文文献(将文献的链接复制到SCI-HUB即可)

  • 说明:IEEE是国外类似于知网的网站,收录论文较全,但需要收费,可通过SCI-HUB破解(用IEEE搜,去SCI-HUB下载)

SCI-HUB

IEEE

备用:Xirva (opens new window)SemanticScholar (opens new window)BaseSearch (opens new window)ScienceDirect (opens new window)OA.mg (opens new window)

xirva

SemanticScholar

BaseSearch

ScienceDirect

OA.mg

# 5.2.2 中文文献

首选:可通过 上海科技创新资源数据中心 (opens new window)(注册后可获得600元CNKI和400元万方文献免费额度)免费下载 中国知网CNKI (opens new window)万方 (opens new window) 的论文。如果要下的论文不多,用这个最方便,直接给免费额度白嫖。

  • 说明:CNKI可使用“导出/参考文献”功能生成引用格式

上海科技创新资源数据中心

备用:喵咪论文 (opens new window)iData (opens new window)(需要翻墙,每天免费下载5篇)

喵咪论文

iData

# 5.3 书籍资源检索

除了挂掉的 Z-Library 之外,还有一些其他的书籍资源检索网站作为补充,下面这些个人认为“鸠摩搜索”是最好用的。

鸠摩搜索 (opens new window)PDF Drive (opens new window)搬书匠 (opens new window)Library Genesis (opens new window)Free eBooks (opens new window)北大出版社电子教材书架 (opens new window)书格 (opens new window)hallowLib书籍检索 (opens new window)

# 5.4 毕业论文查重

自己去论文查重也有论文泄露的风险,虽然一般问题不大,自行斟酌。正式论文查重根据学校的要求来选择,一般是知网查重,去淘宝买相应的查重服务。不同的查重服务由于数据库不一致,查重率可能有较大出入。

下面列举的论文查重是免费的或者比较便宜的,仅用于初查或者应付性质的给个查重报告。

PaperYY (opens new window)(免费,偏差较大)、PaperPass (opens new window)(便宜,偏差较大)、万方查重 (opens new window)(收费,相对准确)

# 6. 参考资料

[1] 搜索书籍索引,创建您的私人本地图书馆 from Github (opens new window)

[2] book-searcher about index file form Github issues (opens new window)

[3] zlib-searcher index from Github (opens new window)

[4] IPFS 新手指北 from zu1k (opens new window)

[5] IPFS 日用优化指南 from zu1k (opens new window)

[6] VPS服务器Docker搭建Calibre-web个人电子书库教程 from 合一学院 (opens new window)

[7] Z-library(libgen)文件IPFS化及搜索服务 from 知乎 (opens new window)

[8] 最新好消息: Z-library 发布客户端 from 知乎 (opens new window)

Last Updated: 6/23/2023, 9:23:29 AM