owllook -- 一个简洁的网络小说搜索引擎

owllook-demo

0.前言

偶尔内容会更新在博客,文章博客地址点这里
事情的起因是这样的,前段时间在把之前写的一些同步网络请求代码改成异步的,用的是aiohttp,既然是请求,那请求什么呢,就百度吧,请求什么内容呢,我随手一输自己最近看的一本小说,然后作为练手用,就做了这个,我将其取名为owllook,准备做成一个推荐系统,所以我就将其部署上去,这才有了这个网站。

上一篇介绍了自己在使用sanic过程中遇到的一些问题,这次就想介绍下这个owllook--novels_search,上面是演示demo,具体可以见http://www.owllook.net/
本项目纯属共享学习之用,不得用于商业!
首先我想说下目前的项目进度:

v0.1已经上线:

  • 小说的基本搜索解析功能
  • 搜索记录
  • 缓存
  • 书架
  • 书签
  • 登录(暂时不开放注册,可与我申请体验

TODO:

  • [ ] 注册
  • [ ] 阅读书单
  • [ ] 手机端兼容
  • [ ] 推荐
  • [ ] 排行榜
  • [ ] 个人中心

1.介绍

owllook的思路很简单,利用百度检索出来的结果,进行过滤解析后再展示,使用的技术如下:

  • sanic:基于Python 3.5+的异步web服务器,快快快
  • sanic_session:sanic的持续会话插件
  • vloop:sanic默认使用uvloop,替代asyncio本身的loop
  • motor:异步的mongodb驱动
  • aiohttp:异步请求
  • aiocache:异步缓存,本项目改用了其中的decorator部分,缓存数据库使用redis

对于用户的一系列操作信息,使用mongodb进行存储,而缓存则使用redis

对于不同网站的小说,页面规则都不尽相同,我希望能够在代码解析后再统一展示出来,这样方便且美观,而不是仅仅跳转到对应网站就完事,清新简洁的阅读体验才是最重要的。

目前采用的是直接在百度上进行结果检索,也不是不能做的更大更全,只是觉得没什么意义,目前的检索结果已经很足够。

我尽量写少量的规则来完成解析,具体见规则定义,遇到自己喜欢的小说网站,方便诸位添加解析。

一般都是在下班时间编写这个项目,目前v0.1版本大概实现。

后期我准备将基础功能写好之后,能够实现小说与kindle之间的对接。

2.解析

这个项目的思路与技术都比较简单,但是小说网站的解析工作是很难全部解析完毕,下面我将举个例子怎么具体的解析一个网站,欢迎各位添砖加瓦,请先看一遍规则定义
解析也很简单,只要求有点html以及css基础即可。

首先进入网站http://www.owllook.net/
搜索:

01

注意第一条结果显示未解析,这就是我们要解析的对象了,点击进入源网站,审查小说目录对应的元素,这里显示的是:class="mulu_list,然后注意其content_url类型是0

02

进入小说章节内容页面,审查元素可以看到id=htmlContent,所以content_selector=htmlContent

接下来进入项目,打开config/rules.py文件,在RULES字典中加入:

'www.ybdu.com': Rules('0', {'class': 'mulu_list'}, {'id': 'htmlContent'}),

这时候再重启服务,刷新页面:


03

可以看到未解析变成了已解析,这时候点击进入,会出现两种情况:

  • 排版完整,不需要再写样式,此时请直接解析章节内容
  • 排版不行,需要写样

现在我演示的这个链接排版就是显示不行,请打开/static/novels/css/chapter.css文件,在编写之前,请先看下面这张图:

04

图中.mulu_list1:打错了表示区域1,.mulu_list1:表示区域3.

首先更改区域1的样式,我已经在代码注释写了各个区域样式代码在哪,直接更改就行,比如:

/* 区域1 */
.mulu_list, .acss, .list, #xslist ul, .dirlist, .list-chapter, .list_box ul, #defaulthtml4 table, .article-list > dl, .update, #list .box, .bookcontent > dl, .listmain > dl, .ml_main > dl, #list dl, #chapter_list, .chapterlist, tbody, .mt10, .catalog, #readerlists {
    float: left;
    overflow: hidden;
    padding-bottom: 1px;
    margin: auto;
    background: #F6F4EC;
    border-radius: 15px;
}

可以看到加上了.mulu_list,以此类推,最后解析完毕之后如下图:

05

注意章节内容里面一些无关的链接以及原本网页自带的上一章下一章需要隐藏掉哦。

3.总结

功能还很简单,解析的网站有很多,希望各位添砖加瓦,容我奉上项目地址:owllook--novels_search,欢迎issue和star。

仅供分享交流 不可用于商业用途

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,382评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 书本折角的地方一定要捋直了,衣服一定要叠整齐了,像这样强迫症的表现,明星们也有的。不但如此,有的明星的强迫症表现太...
    首席娱记阅读 620评论 0 1
  • 亲爱的李先生,自从跨年后这是我们分开后的五个月了吧,会想到那时候的我有多难受,此刻想到都有些心酸。奇怪,明明你对我...
    哇你好棒啊阅读 226评论 0 0
  • 成长不是一夜就长大了,而是逐渐完成的,我喜欢走捷径,那是因为我觉得假如有更好的办法,为什么不用呢。有人说成长就是多...
    追求更好的生活阅读 162评论 0 1