一、owllook简介
owllook是一个基于其他搜索引擎构建的垂直小说搜索引擎,owllook目的是让阅读更简单、优雅,让每位读者都有舒适的阅读体验,如搜书、阅读、收藏、追更、推荐等功能。
owllook使用了mongodb储存了用户使用过程中的产生的基本信息,诸如注册信息、搜索小说信息、收藏小说数据等,对于某些必要的缓存,则利用redis进行缓存处理,如小说缓存、session缓存,注意,对于限制数据:都将在24小时删除
对于不同网站的小说,页面规则都不尽相同,我希望能够在代码解析后再统一展示出来,这样方便且美观,而不是仅仅跳转到对应网站就完事,清新简洁的阅读体验才是最重要的
目前采用的是直接在搜索引擎上进行结果检索,我尽量写少量的规则来完成解析,具体见规则定义,遇到自己喜欢的小说网站,你也可以自己添加解析,owllook目前解析了超过 200+ 网站,追更网站解析了50+
有一些地方需要用到爬虫,比如说排行榜,一些书籍信息等,我不想动用重量级爬虫框架来写,于是我在owllook里面编写了一个很轻量的爬虫框架来做这件事,见 ruia
二、owllook在CentOS 7系统上的安装
先更新系统:
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.pyowllook项目地址:https://github.com/howie6879/owllook
安装教程全文转自:https://lala.im/4538.html
推荐站内搜索:免费的网站服务器、免费域名注册平台、怎么防止ip被攻击、国外服务器vps、美国主机网、服务器空间租用、免备案cdn加速免费美国主机、服务器租用、阿里云服务器、