V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
winglight2016
V2EX  ›  程序员

有喜欢看小说的程序员进来看看

  •  
  •   winglight2016 · 2017-05-11 20:45:18 +08:00 · 4690 次点击
    这是一个创建于 2535 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚花了两天时间做了个粗糙的小说阅读器,期待有兴趣的 XD 一起完善^_^ 项目地址: https://github.com/winglight/soducrawler

    下面是介绍:

    搜读阅读器

    这个项目是为了解决阅读网络小说的几个痛点:

    • “免费”网站广告太多
    • 有些不能收藏,有些能,但是有 bug,或者有收藏数量限制
    • 阅读不便,总是要弹开新窗口
    • 追更新不便,需要手动刷新
    • 不能在 PC 和手机之间同步进度
    • 不能离线查看

    因此,这个项目的路线图如下:

    • 抓取网络小说及章节内容( DONE )
    • 展示小说列表( DONE )
    • 小说章节阅读器( TODO )
    • 本地收藏( TODO )
    • 云端同步收藏、进度信息( TODO )
    • 封装 electron 客户端( TODO )
    • APP 版( TODO )

    本地安装使用方法:

    1. 安装 nodejs 环境
    2. 安装 node 依赖包:在命令行进入项目目录,执行

    npm install

    或者,使用 yarn

    yarn

    1. 执行抓取代码

    node crawler.js

    1. 打开小说阅读器:直接双击 index.html 在浏览器打开

    请注意,由于使用了 ng-admin 来自动生成阅读器页面,目前还有些展示问题:

    1. 搜索小说必须使用全部名称
    2. 查看章节内容时,html 标签全部显示出来了,而且字体太小
    3. 显示章节列表时,打开 modal 窗口显示章节内容的功能还有问题:要么无法显示内容,要么显示带 html 标签的内容

    项目采用了以下技术:

    1. parse-server: https://github.com/ParsePlatform/parse-server-example
    2. ng-admin: https://www.gitbook.com/book/marmelab/ng-admin/details
    3. cheerio: https://github.com/cheeriojs/cheerio
    4. js-crawler: https://github.com/antivanov/js-crawler
    5. heroku: https://www.heroku.com
    6. nodejs: https://nodejs.org
    7. 其他使用到的开源项目,请看 package.json

    欢迎大家提出宝贵意见,反馈直接发到 issue,有兴趣参与开发的可以提 pull request,我会尽快处理。

    能看到这里的都是真爱:其实我是碰到难题一时没有办法,诚邀 nodejs/angularjs 高手来解决!

    24 条回复    2017-05-13 22:14:54 +08:00
    swYang
        1
    swYang  
       2017-05-11 22:02:04 +08:00
    围观一下
    hzw94
        2
    hzw94  
       2017-05-11 23:15:10 +08:00
    可惜我 nodejs 太弱了,帮不上忙。
    winglight2016
        3
    winglight2016  
    OP
       2017-05-12 07:41:19 +08:00
    @swYang @hzw94 重在参与^_^
    熟悉 java 的话,以后可能还会出个 play+java 的版本
    as9t
        4
    as9t  
       2017-05-12 08:57:55 +08:00
    老子搜书 良心 APP
    love2075904
        5
    love2075904  
       2017-05-12 09:04:55 +08:00
    现在一般在起点看了。。
    enenaaa
        6
    enenaaa  
       2017-05-12 09:48:33 +08:00
    用盗版源提供内容给用户, 是有政策风险的。上次有人被抓了。
    qq7790586
        7
    qq7790586  
       2017-05-12 09:55:27 +08:00
    ios 的求推荐追书 app,以前用追书神器,有广告不能换源了。现在用石头阅读,感觉 UI 不是很好看。。。楼上有推荐老子搜书,我下载看看。
    flowfire
        8
    flowfire  
       2017-05-12 10:42:46 +08:00
    @enenaaa #6 楼主也不做服务= =只提供源码应该没风险吧,,
    讲道理像我这种只看完本的。。。起点一个小时花 12 块有点心疼😂
    zhaohehedola
        9
    zhaohehedola  
       2017-05-12 10:44:20 +08:00
    比较好奇 小说阅读界面是用什么做的
    flowfire
        10
    flowfire  
       2017-05-12 10:46:06 +08:00
    crawler 里一片 var 看的我难受。。。
    既然都用 node 了为啥不用 let 啊= =
    thomaspaine
        11
    thomaspaine  
       2017-05-12 11:41:00 +08:00
    做盗版资源聚集软件,还是小心点好
    standin000
        12
    standin000  
       2017-05-12 16:01:44 +08:00
    去广告的功能是怎么做的,以前是用 readability.com,可惜挂了
    pyufftj
        13
    pyufftj  
       2017-05-12 16:23:21 +08:00
    小心。。做这种事情会被警告的。
    jinhan13789991
        14
    jinhan13789991  
       2017-05-12 16:45:51 +08:00
    小心吧~ 作为一个一年在起点花了一千多块的正版用户表示,支持作者还是有必要的。不然作者喝西北风,你追的书质量也下降了
    Hzzone
        15
    Hzzone  
       2017-05-12 19:29:36 +08:00
    https://github.com/xiadd/zhuishushenqi
    建议你去看一下这个,而不是傻傻的自己写爬虫。当然也可以,但是比较麻烦,支持的网站也少。
    winglight2016
        16
    winglight2016  
    OP
       2017-05-12 22:09:59 +08:00
    @enenaaa 开源项目,纯研究学习使用——符合知识产权政策的
    winglight2016
        17
    winglight2016  
    OP
       2017-05-12 22:10:57 +08:00
    @zhaohehedola 阅读器界面使用了 ng-admin,这个项目使用了 angularjs 1.x
    winglight2016
        18
    winglight2016  
    OP
       2017-05-12 22:12:36 +08:00
    @flowfire 因为在我看来 let 和 var 差不多~~~也可能是我的 nodejs 代码量比较少,没有发现相关问题
    winglight2016
        19
    winglight2016  
    OP
       2017-05-12 22:13:33 +08:00
    @standin000 实际上还是一个 reader 的开源项目,在 package.json 里面可以看到
    winglight2016
        20
    winglight2016  
    OP
       2017-05-12 22:15:19 +08:00
    @Hzzone 这个追书神器的 API 我也分析过,只是后来发现章节内容被加密了,虽然看起来是 base64 的,但是没搞定啊~~~
    Hzzone
        21
    Hzzone  
       2017-05-13 00:07:51 +08:00
    @winglight2016 VIP 章节才加密了吧?
    winglight2016
        22
    winglight2016  
    OP
       2017-05-13 08:52:42 +08:00
    @Hzzone 是的,因为没法解密,所以没用这个
    bengle
        23
    bengle  
       2017-05-13 13:34:59 +08:00
    版权是很大问题,自己玩玩就好了
    winglight2016
        24
    winglight2016  
    OP
       2017-05-13 22:14:54 +08:00
    @bengle 对,仅用于学习研究^_^
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   907 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:09 · PVG 06:09 · LAX 15:09 · JFK 18:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.