美文网首页
PC小说下载器+阅读器 JavaFX版-V1.0

PC小说下载器+阅读器 JavaFX版-V1.0

作者: Unclezs | 来源:发表于2019-04-01 13:51 被阅读0次

    因为前段时间做了个安卓的小说下载器,不过是jsoup匹配的,我后面也想了一下正则实现通用的匹配模式,一个网站一套规则感觉比较繁琐,不好维护。
    实现方式我钱前面也说过了,所以吧,开始动手弄个界面出来,正则嘛,匹配注定不会很完善,所以需要过滤。
    主要思路是通过章节目录来下载一本小说。章节目录解析下来每一章的正文目录链接,再通过正文链接来抓取源码来匹配正文内容。
    下面是实现的效果图

    主页面

    image

    阅读页面

    image
    image 书架

    开始本来是没打算添加阅读功能的毕竟在电脑看小说的人很少吧,后面在论坛里面有人提议加个阅读,想了一下在pc上看小说的软件我还没听过,几乎都是网页看小说,但是网页广告比较多,我做个阅读器出来相当去去广告的吧,也行,就添加了进去

    接下来说说实现原理了

    前面说了内容解析的原理,来说说内部的构造吧

    1.章节目录去重复链接

    通过布隆过滤器算法实现的url去重</li>

    2.乱序重排

    因为有些网站的章节目录有些是乱的,照着下载下来也是乱的,得排序一下,首先截取url最后一段内容,dddd.html之类的,把dddd提取出来。
    开始我有两种排序方式,一个是字符串比较排序,发现并不是很好,因为排CompareTo方法比较原理问题可以自行看看他的原理,后面用了bigInteger来比较数值的大小,比较准确了,对于那些是字符串结尾的网站就没进行排序的,比如起点的结尾是一串乱七八糟的字符穿,根本排不了,好在他的顺序是正确的</li>

    3.字符转码

    因为有些网站用的一些繁体字,查看源码的时候中文就是一些&#dddd;格式的(NCR)字符,所以必须得转一下码才行,转码方式也简单,其实这个也不需要什么转码,这个把其中的数字取出来,当成ASCLL码,取值就行了(int强转成char)

    4.繁体转简体

    繁体字我是看着不舒服,所以就加了上去,big5转对应的编码就行,也可以用chinese-utils包下面的toSimple方法

    UI方面就没怎么做得好看了,就把用的到的功能加上去了
    1.实现了历史章节读取,自动跳转上次位置
    2.自动保存上次设置背景色,字体大小。
    3.滚动条下拉到底自动加载下一章节,到顶反之
    4.章节自动缓存功能,实现无延迟阅读

    源码地址
    https://github.com/1585503310/ReadnovelOnWin

    相关文章

      网友评论

          本文标题:PC小说下载器+阅读器 JavaFX版-V1.0

          本文链接:https://www.haomeiwen.com/subject/wqhvbqtx.html