owllook是一个基于其他搜索引擎构建的垂直小说搜索引擎,提供搜书、阅读、收藏、追更、推荐等功能,owllook不保存数据,所有信息全部利用爬虫技术基于第三方网站搜索发现,再经过在线解析展示给用户。
owlllook基于python3.6,后端采用Sanic,前端使用了 bootstrap和 mdui,数据库方面则用了 MongoDB储存用户使用过程中的产生的基本信息,诸如注册信息、搜索小说信息、收藏小说数据等,对于某些必要的缓存,则利用 Redis 进行缓存处理,如小说缓存、session缓存,注意,对于限制数据:都将在24小时删除。
演示站
www.owllook.net
github项目地址
github.com/howie6879/owllook
安装
默认以 Centos 7为主,默认在 root 用户下操作,首先Python版本,最好是 Python3.6,然后项目的数据库需要 MongoDB Redis
更新系统源
yum -y update
安装EPEL源
yum -y install epel-release
安装Redis和一些基本组件
yum -y install redis git curl screen
运行并把Redis设置开机自启动
systemctl start redis
systemctl enable redis
新建一个repo源,用于安装mongodb
vi /etc/yum.repos.d/mongodb-org-4.0.repo
写入:
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
然后直接yum安装
yum -y install mongodb-org
启动mongodb并设置开机启动
systemctl start mongod
systemctl enable mongod
安装编译安装Python3所需的依赖
yum -y install gcc make zlib zlib-devel readline readline-devel readline-static openssl openssl-devel openssl-static sqlite-devel bzip2-devel bzip2-libs libffi-devel
跑下面这个脚本安装pyenv
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
编辑账户配置文件
vi ~/.bash_profile
加入如下环境变量:
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
使其生效
source ~/.bash_profile
使用pyenv安装python3.6.7
pyenv install 3.6.7
完成之后创建一个3.6.7的虚拟运行环境:
pyenv virtualenv 3.6.7 owllook
记住你的这个环境路径,如下
/root/.pyenv/versions/3.6.7/envs/owllook/bin/python3
现在拉取项目并进入到项目目录:
git clone https://github.com/howie6879/owllook
cd owllook
把项目目录的python环境设置为我们刚才创建的:
pyenv local owllook
使用pip安装pipenv
pip install pipenv
然后使用pipenv安装项目所需依赖:
pipenv install --python /root/.pyenv/versions/3.6.7/envs/owllook/bin/python3
依赖安装完成如图所示,请确保这个过程没有任何错误:
完成之后进入到owllook目录内
cd owllook
编辑配置文件
vi config/config.py
找到如下这段代码
VAL_HOST = os.getenv('VAL_HOST', 'true')
改为:
VAL_HOST = os.getenv('VAL_HOST', 'false')
现在使用screen创建一个新的shell
screen -S owllook
在新shell内运行程序
python server.py
不出意外,你可以看到类似下图的回显,就说明项目跑起来了
现在我们安装Nginx用于反向代理:
yum -y install nginx
新建一个Nginx站点配置文件
vi /etc/nginx/conf.d/book.conf
写入
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://0.0.0.0:8001;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
重启Nginx
systemctl restart nginx
关闭防火墙和SElinux
systemctl stop firewalld.service
systemctl disable firewalld.service
vi /etc/selinux/config
SELINUX=disabled
setenforce 0
现在打开你的站点域名,应该可以正常访问这个程序了:
显示排行榜:
运行spider_console.py
cd owllook/owllook/spiders
然后用screen创建一个新的shell
screen -S spider_console
在新shell里执行
python spider_console.py
文章全篇转自主机百科。
One comment
Traceback (most recent call last):
from owllook.views import admin_bp, api_bp, except_bp, md_bp, novels_bp, operate_bpFile "/root/owllook/owllook/server.py", line 12, in
File "/root/owllook/owllook/views/__init__.py", line 1, in
from .admin_blueprint import admin_bpFile "/root/owllook/owllook/views/admin_blueprint.py", line 8, in
from owllook.database.mongodb import MotorBaseFile "/root/owllook/owllook/database/mongodb/__init__.py", line 1, in
from .motorbase import MotorBase, MotorBaseOld, PyMongoDbFile "/root/owllook/owllook/database/mongodb/motorbase.py", line 11, in
@singletonFile "/root/owllook/owllook/database/mongodb/motorbase.py", line 19, in MotorBase
MONGODB = CONFIG.MONGODBAttributeError: type object 'Config' has no attribute 'MONGODB'
运行server,.py就一直这样