owllook是一個在線小説搜索引擎,其目的是讓閲讀更簡單、優雅,讓每位讀者都有舒適的閲讀體驗
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已經存在:
# 安裝
sudo yum install mongodb-org
# 啓動
sudo systemctl start mongod
# 查看 MongoDB 後台進程
ps -aux |grep mongod
# 或者
sudo systemctl status mongod
可以看到MongoDB正在後台運行:
進入 MongoDB:
安裝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
啓動 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
如下表示安裝成功:
運行owllook:
cd owllook
python run.py
成功如下圖:
項目截圖
首頁
搜索
榜單
書架
解析
閲讀頁