owllook是一個在線小説搜索引擎,其目的是讓閲讀更簡單、優雅,讓每位讀者都有舒適的閲讀體驗

alook自定義搜索引擎_github

owllook是我大學時期編寫的一個Python開源項目,至今維護將近兩年了,以前關於owllook介紹的原文章已經年久失修,再加上一些github用户不知道怎麼安裝使用,因此我將文章重新編輯一番,以作使用指南

介紹

owllook是一個基於其他搜索引擎構建的垂直小説搜索引擎,提供搜書、閲讀、收藏、追更、推薦等功能

  • owllook 演示網址: https://www.owllook.net/
  • github開源地址:https://github.com/howie6879/owllook

owllook不保存數據,所有信息全部利用爬蟲技術基於第三方網站搜索發現,再經過在線解析展示給用户,這樣對使用者的好處在於:

  • 多網站聚合,可選擇性高
  • 優質網站來源提供,可靠性強
  • 頁面解析會經過過濾,安全性高
  • 自動去廣告,可讀性強
  • 定時更新,自動追更
  • 發現同類書友
  • ……

owlllook基於python3.6,後端採用Sanic,前端使用了 bootstrap和 mdui,數據庫方面則用了 MongoDB儲存用户使用過程中的產生的基本信息,諸如註冊信息、搜索小説信息、收藏小説數據等,對於某些必要的緩存,則利用 Redis進行緩存處理,如小説緩存、session緩存,注意,對於限制數據:都將在24小時刪除

對於不同網站的小説,頁面規則都不盡相同,我希望能夠在代碼解析後再統一展示出來,這樣方便且美觀,而不是僅僅跳轉到對應網站就完事,清新簡潔的閲讀體驗才是最重要的

目前採用的是直接在搜索引擎上進行結果檢索,我儘量寫少量的規則來完成解析,具體見項目裏面的規則定義,遇到自己喜歡的小説網站,你也可以自己添加解析,owllook目前解析了超過 200+網站,追更網站解析了 50+

有一些地方需要用到爬蟲,比如説排行榜,一些書籍信息等,我不想動用重量級爬蟲框架來寫,於是我在owllook裏面編寫了一個很輕量的爬蟲框架來做這件事,見 ruia 異步爬蟲框架

目前實現功能如下:

  • 多搜索源
  • 豐富的解析源
  • 界面統一解析
  • 完善的閲讀體驗
  • 搜索記錄
  • 緩存
  • 書架
  • 書籤
  • 登錄
  • 初步兼容手機
  • 註冊(開放註冊)
  • 上次閲讀記錄
  • 最新章節
  • 書友推薦(簡單地基於相似度進行推薦)
  • 目錄獲取
  • 翻頁
  • 搜索排行
  • 章節異步加載 感謝@[mscststs](https://github.com/mscststs)
  • 排行榜 - 起點+owllook
  • 自帶爬蟲框架,統一爬蟲規範,對爬蟲感興趣的可以看看 - [ruia](https://github.com/howie6879/ruia)

安裝

接下來的安裝步驟,默認以 Centos7為主,默認在 root用户下操作,首先Python版本,最好是 Python3.6,然後項目的數據庫需要 MongoDBRedis

請先安裝:

yum -y install bzip2 wget vim git

環境搭建

owllook的安裝很簡單,但是對於一些Python不熟悉或者新手來説確實有點困難,下面詳細介紹了安裝流程

數據庫

owllook需要你在服務器上安裝 MongoDB和 Redis,你不必管理數據庫的創建,用這個的好處就在於可以自動生成

安裝MongoDB

vim /etc/yum.repos.d/mongodb-org-3.6.repo

輸入:

[mongodb-org-3.6]	
name=MongoDB Repository	
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/	
gpgcheck=1	
enabled=1	
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

可以看到 repolist已經存在:

alook自定義搜索引擎_alook自定義搜索引擎_02

# 安裝	
sudo yum install mongodb-org	
# 啓動	
sudo systemctl start mongod	
# 查看 MongoDB 後台進程	
ps -aux |grep mongod	
# 或者	
sudo systemctl status mongod

可以看到MongoDB正在後台運行:

alook自定義搜索引擎_github_03

進入 MongoDB:

alook自定義搜索引擎_github_04

安裝Redis

yum install epel-release yum-utils	
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm	
yum-config-manager --enable remi	
yum install redis	
vim /etc/redis.conf	
# 使 redis 能在後台運行	
daemonize yes

啓動 redis 服務

# 啓動	
systemctl restart redis	
# 查看狀態	
systemctl status redis	
# 查看端口	
ss -an | grep 6379

alook自定義搜索引擎_python_05

啓動 redis 客户端

redis-cli	
# ctrl + d 退出客户端

下載代碼

請先安裝git然後克隆代碼

cd ~	
# 下載代碼	
git clone https://github.com/howie6879/owllook

搭建Python3.6環境:

# 下載anaconda管理 Python 環境	
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.0-Linux-x86_64.sh	
# 安裝	
chmod -R a+x Anaconda3-5.3.0-Linux-x86_64.sh 	
./Anaconda3-5.3.0-Linux-x86_64.sh	
# 刷新終端	
# 創建 Python3.6 環境	
conda create -n python36 python=3.6

配置項目:

cd ~/owllook	
# 安裝 pipenv	
pip install pipenv	
# --python 後面的路徑是上面conda創建的路徑地址	
pipenv install --python  ~/anaconda3/envs/python36/bin/python3.6	
# 如果出錯 繼續往下執行	
pipenv run pip install pip==18.0	
pipenv install

如下表示安裝成功:

alook自定義搜索引擎_redis_06

運行owllook:

cd owllook	
python run.py

成功如下圖:

alook自定義搜索引擎_python_07

項目截圖

首頁

alook自定義搜索引擎_redis_08

搜索

alook自定義搜索引擎_alook自定義搜索引擎_09

榜單

alook自定義搜索引擎_python_10

書架

alook自定義搜索引擎_alook自定義搜索引擎_11

解析

alook自定義搜索引擎_python_12

閲讀頁

alook自定義搜索引擎_redis_13