### [owllook – 在线小说搜索引擎](https://pmself.com/article/461) **Published:** 2021-06-09T09:30:31 **Author:** eganvi **Excerpt:** owllook-在线网络小说阅读网站&小说搜索引擎&小说推荐系统[搜索、追书、收藏、追更、小说API] 是一个… owllook-在线网络小说阅读网站&小说搜索引擎&小说推荐系统\[搜索、追书、收藏、追更、小说API\] `owllook`是一个基于其他搜索引擎构建的垂直小说搜索引擎,owllook目的是让阅读更简单、优雅,让每位读者都有舒适的阅读体验,如**搜书、阅读、收藏、追更、推荐等功能**. 本站仅收集与分享该项目,不负责技术安装或任何咨询服务! 目前实现功能如下: - 多搜索源 - 丰富的解析源 - 界面统一解析 - 完善的阅读体验 - 搜索记录 - 缓存 - 书架 - 书签 - 登录 - 初步兼容手机 - 注册(开放注册) - 上次阅读记录 - 最新章节 - 书友推荐(简单地基于相似度进行推荐) - 目录获取 - 翻页 - 搜索排行 - 章节异步加载 感谢@\[mscststs\](https://github.com/mscststs) - 排行榜 – 起点+owllook - 自带爬虫框架,统一爬虫规范,对爬虫感兴趣的可以看看 – \[ruia\](https://github.com/howie6879/ruia) **注意**:若将本项目部署并发行,请**声明来源**,本项目纯属**共享学习之用,不得用于商业!** ### Overview `owllook`使用了mongodb储存了用户使用过程中的产生的基本信息,诸如注册信息、搜索小说信息、收藏小说数据等,对于某些必要的缓存,则利用redis进行缓存处理,如小说缓存、session缓存,注意,对于限制数据:都将在24小时删除 对于不同网站的小说,页面规则都不尽相同,我希望能够在代码解析后再统一展示出来,这样方便且美观,而不是仅仅跳转到对应网站就完事,清新简洁的阅读体验才是最重要的 目前采用的是直接在搜索引擎上进行结果检索,我尽量写少量的规则来完成解析,具体见规则定义,遇到自己喜欢的小说网站,你也可以自己添加解析,`owllook`目前解析了超过 **200+** 网站,追更网站解析了**50+** 有一些地方需要用到爬虫,比如说排行榜,一些书籍信息等,我不想动用重量级爬虫框架来写,于是我在owllook里面编写了一个很轻量的爬虫框架来做这件事,见 **ruia** BTW,sanic写界面确实不是很方便,至于为什么写这个,一是想利用`sanic`尽量做成异步服务,二是想就此练习下推荐系统,顺便作为毕业设计 #### Installation 请先装好mongo以及redis,不会安装mongo看这里,`owllook`使用`pipenv`管理虚拟环境,所以使用前请确保安装一个`Python3.6`环境(比如我这里环境路径在`/Users/howie/anaconda3/envs/python36/bin/python3.6`),然后安装好`pipenv` mongo以及redis装好后,进入项目目录,依照步骤执行: \# 下载代码 git clone https://... cd owllook pip install pipenv # 请先提前创建好Python3.6环境 pipenv install --python /Users/howie/anaconda3/envs/python36/bin/python3.6 --skip-lock # 进入虚拟环境 pipenv shell # 先配置好相关数据库配置,具体看\`config/dev\_config.py\` # 方案一 # 运行: cd owllook pipenv run gunicorn -c owllook/config/gunicorn.py --worker-class sanic.worker.GunicornWorker owllook.server:app # 方案二 推荐 # 安装docker并打包镜像 docker build -t howie6879/owllook . # 实际运行 docker-compose up -d # 退出 docker-compose down **\[ 详细安装说明请见下一页 \]** ### Screenshots 首页: ![](https://pmself.com/wp-content/uploads/2024/01/20240119175351.jpg) 搜索: ![](https://pmself.com/wp-content/uploads/2024/01/20240119175423.jpg) 榜单: ![](https://pmself.com/wp-content/uploads/2024/01/20240119175453.jpg) 书架: ![](http://pmself.com/wp-content/uploads/2021/06/2021060909331440.jpeg) 目录解析页: ![](https://pmself.com/wp-content/uploads/2024/01/chapter.png) 阅读: ![](https://pmself.com/wp-content/uploads/2024/01/content.png) ### FAQ **为什么首页榜单为空白?** 这个是根据小说搜索次数显示的,每天刷新一次,使用多了就会有 **为什么会出现302跳转?** 为了防止直接运行服务被恶意域名绑定,所以作出如下修改: vim config/config.py # 将 true 改为 false VAL\_HOST = os.getenv('VAL\_HOST', 'true') VAL\_HOST = os.getenv('VAL\_HOST', 'false') **小说榜单页面为什么没有内容?** 需要运行`owllook/spiders/spider_console.py`, 目前代码中是设定60分钟运行一次,运行的时候请酌情更改, `os.environ['MODE'] = 'PRO'` 这段代码也请注释掉 ### Reference **owllook使用了以下第三方包:** - sanic:基于Python 3.5+的异步web服务器 - motor:异步的mongodb驱动 - Jinja2:基于python的模板引擎 - aiohttp:异步请求 - caddy:基于go的web服务器 **web框架:** - [bootstrap](https://github.com/twbs/bootstrap):时尚、直观且功能强大的前端框架,可实现更快、更轻松的 Web 开发。 - [mdui](https://github.com/zdhxiong/mdui):MDUI是一个基于Material Design的接口框架 ### License `owllook` is offered under the Apache 2 license. **\[ 安装请见下一页 \]** ## 安装 接下来的安装步骤,默认以 `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] ``` 可以看到 `repolist`已经存在: ![](https://pmself.com/wp-content/uploads/2024/01/120240119180221.jpg) ``` # 安装 ``` 可以看到MongoDB正在后台运行: ![](https://pmself.com/wp-content/uploads/2024/01/220240119180244.jpg) 进入 `MongoDB`: ![](https://pmself.com/wp-content/uploads/2024/01/320240119180308.jpg) **安装Redis**: ``` yum install epel-release yum-utils ``` 启动 redis 服务 ``` # 启动systemctl restart redis# 查看状态systemctl status redis# 查看端口ss -an | grep 6379 ``` ![](https://pmself.com/wp-content/uploads/2024/01/420240119180326.jpg) 启动 redis 客户端 ``` redis-cli ``` ### 下载代码 请先安装git然后克隆代码 ``` cd ~ ``` 搭建Python3.6环境: ``` # 下载anaconda管理 Python 环境 ``` 配置项目: ``` cd ~/owllook ``` 如下表示安装成功: ![](https://pmself.com/wp-content/uploads/2024/01/520240119180354.jpg) 运行owllook: ``` cd owllook ``` 成功如下图: ![](https://pmself.com/wp-content/uploads/2024/01/720240119180418.jpg) **Categories:** 开源项目, 资源 ---