• Stars
    star
    2,549
  • Rank 17,869 (Top 0.4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

owllook-小说搜索引擎

owllook - 在线小说搜索引擎

Python3.6+ license

owllook是一个基于其他搜索引擎构建的垂直小说搜索引擎,owllook目的是让阅读更简单、优雅,让每位读者都有舒适的阅读体验,如搜书、阅读、收藏、追更、推荐等功能

img

衍生项目:

注意:若将本项目部署并发行,请声明来源,本项目纯属共享学习之用,不得用于商业!

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://github.com/howie6879/owllook
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

Features

  • 多搜索源
  • 丰富的解析源
  • 界面统一解析
  • 完善的阅读体验
  • 搜索记录
  • 缓存
  • 书架
  • 书签
  • 登录
  • 初步兼容手机(后续跟进)
  • 注册(开放注册)
  • 上次阅读记录
  • 最新章节
  • 书友推荐(简单地基于相似度进行推荐)
  • 目录获取
  • 翻页
  • 搜索排行
  • 章节异步加载 感谢@mscststs
  • 排行榜 - 起点+owllook
  • 自带爬虫框架,统一爬虫规范,对爬虫感兴趣的可以看看 - ruia

TODO

  • 评分
  • 阅读书单
  • 推荐
  • 小说圈 - 小说界的消息

Screenshots

首页:

搜索:

榜单:

书架:

books

目录解析页:

demo

阅读:

content

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服务器

    …...更多见Pipfile,感谢开发者

web框架:

  • bootstrap:Sleek, intuitive, and powerful front-end framework for faster and easier web development.
  • mdui:MDUI 是一个基于 Material Design 的前端框架

License

owllook is offered under the Apache 2 license.

Donate

捐赠:

美酒加咖啡,我只要喝一杯~

donate

感谢以下捐赠者,具体见捐赠名单 ^_^

More Repositories

1

ruia

Async Python 3.6+ web scraping micro-framework based on asyncio
Python
1,730
star
2

mlhub123

机器学习&深度学习网站资源汇总(Machine Learning Resources)
852
star
3

liuli

一站式构建多源、干净、个性化的阅读环境(Build a multi-source, clean and personalized reading environment in one stop.)
Python
852
star
4

weekly

老胡的信息技术周刊❤️记录我本周看到的有价值的信息,针对优秀项目、软件、教程资料、网站等。
Python
593
star
5

Sanic-For-Pythoneer

📚 一份sanic使用教程,开源小书
Python
387
star
6

magic_google

Google search results crawler, get google search results that you need
Python
368
star
7

NIYT

在你的终端看小说(Read the novel in your terminal) - NIYT
Go
154
star
8

examiner

操作系统通知中心监控(不论微信、钉钉、QQ,只要开启消息通知),可编写对应处理脚本
Python
143
star
9

owllook_api

owllook - 简洁优雅的小说API🎉
Go
130
star
10

ITBooks

Get itbooks from ebooks's website for free,such as allitebooks,digilibraries,etc
Python
106
star
11

owllook_gui

简洁优雅的小说监控工具🎉
Python
86
star
12

hproxy

hproxy - Asynchronous IP proxy pool, aims to make getting proxy as convenient as possible.(异步爬虫代理池)
Python
66
star
13

talospider

talospider - A simple,lightweight scraping micro-framework
Python
54
star
14

pylab

和Python相关的学习笔记:机器学习、算法、进阶书籍、文档,博客地址:https://www.howie6879.cn
Jupyter Notebook
51
star
15

getNews

互联网新闻推荐系统(myNews)--2016全国计算机设计大赛企业命题参赛作品
Python
44
star
16

w2b

将微信接收的文章自动解析同步到Bear
Python
40
star
17

k8s_note

k8s学习笔记
29
star
18

php-google

Google search results crawler, get google search results that you need - php
PHP
29
star
19

anan

安安 - 育儿医疗问答机器人
Python
24
star
20

book_swop

二手书籍转赠交换计划
21
star
21

sanic_annotation

sanic 源码注释 用于学习
Python
18
star
22

coolshell_qa

CoolShell 博客备份&基于 ChatGPT 的问答机器人
Python
17
star
23

instdd

Instagram Photos Download - Save Instagram photos and videos online
Python
15
star
24

mac-soft

记录我在使用 macOS 过程中使用&看到的软件项目
15
star
25

howie6879.github.io

努力就好
HTML
9
star
26

py_project_template

Python project template for you
Python
7
star
27

weeklyhub

汇聚优质精选技术周刊,为你提供高质量信息流
5
star
28

leaf

A CLI tool for hiding the application's icon in the Dock. (MacOS Dock栏软件图标隐藏终端工具)
Python
5
star
29

monkey

Search engine for programmers
Python
5
star
30

importData

将csv xls json等数据格式导入mysql
Python
4
star
31

expire

Expire aims to make using cache as convenient as possible.
Python
4
star
32

gpt123.ai-daily

老胡的 ChatGPT 日报信息流
Python
3
star
33

ml_note

我的机器学习笔记
Python
3
star
34

liuli_backup

Liuli 阅读环境文章留存
HTML
1
star
35

Mastering-Python

Mastering Python---阅读python相关书籍笔记
Jupyter Notebook
1
star
36

nand2tetris

✍️ 计算机系统要素-从零开始构建现代计算机
Scilab
1
star
37

howie6879

1
star
38

vim_config

vim
Vim Script
1
star