把漫画浏览器的漫画多数据源切换给实现了一下
我的漫画浏览器本地没有数据库,漫画数据是实时从漫画网站上爬出来的,最开始设计的时候就考虑了支持多个漫画数据网站的数据源,本身就支持多个漫画的解析器,要实现某个网站的漫画数据支持,只需要实现相关的接口函数即可。
最开始我的设计思路是实现漫画的聚合:所有的Parser同时爬漫画资源,然后统一合并到漫画浏览器中,若同一个漫画存在于多个漫画源中,自动选取最快的漫画源,甚至实现负载分担功能,同时从多个漫画源下载。这样Parser实现得越多,漫画资源就越丰富,浏览速度也就越快。
后来实现的时候发现存在如下问题:
- 不同的网站中相同的漫画叫做不同的名字,没有远程服务器支持的话,很难实现本地智能合并。
- 不容易判断哪个漫画源具有最佳的速度。
- 不同的网站中相同的漫画可能有不同的分页,无法简单实现负载分担。
这几个问题如果有远程服务器支持,再加上编辑人员手动勘误的话,还是能解决的(事实上,如果有远程服务器支持,解析程序和聚合功能就实现在服务器端了,本地直接获取聚合后的结果,更加简单,效率也更高)。
但是如果要在本地自动实现,还是比较困难的。便退而求其次,改成支持多漫画源切换,每实现一个Parser后就多了一个漫画源,可以在选项菜单中切换,重启后生效(这个主要是为了实现简单,不重启生效实现也不难)。
一开始我就实现了两个漫画网站的数据源的支持,其实以前发布的版本中就是支持漫画数据源切换的,只不过有一个漫画源的速度不快,发布的时候被我屏蔽了。今天晚上闲来无事的时候又写了一个,就干脆放开漫画源的切换功能了。这里之所以用“漫画源1”这样不易识别的名字而不是直接用漫画源的网站名,主要是怕解析程序被漫画源网站给屏蔽了,应该不影响使用。
转载于:https://www.cnblogs.com/TianFang/archive/2012/12/21/2828664.html
把漫画浏览器的漫画多数据源切换给实现了一下相关推荐
- 把漫画浏览器的离线下载的功能给实现了一下
今天把漫画浏览器的离线下载的功能给实现了一下,由于不想做下载管理器,因此实现的比较简单. 使用方式如下: 在漫画详细信息页面调出菜单,点击下载按钮后.漫画列表就变得可以选择了,选中所需要的下在的漫画, ...
- 重温blame!——用html+js写个漫画浏览器
世界那么大,周遭却很拥挤,也许只有思想的驰骋才是最有张力的延伸. 心血来潮的想重温blame! 1.下载<blame!> 先写了个python脚本从某个漫画站下载到了10卷的合集: 2.没 ...
- 简易漫画网站搭建-漫画喵Server版
小喵的唠叨话:寒假的时候写了一个漫画爬虫,爬取了好几个漫画,不过一直没有找到合适的漫画阅读的工具.因此最近就试着自己写一个漫画的网站,放在公网上或者局域网里,这样就能随时随地用手机.Pad看漫画了. ...
- 基于springboot实现漫画之家漫画阅读购买管理系统【源码+论文】分享
基于springboot实现"漫画之家"系统演示 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据 ...
- Spring Boot + Mybatis 配合 AOP 和注解实现动态数据源切换配置
Spring Boot + Mybatis 配合 AOP 和注解实现动态数据源切换配置 前言: 1. 数据库准备: 2. 环境准备: 3.代码部分 4. 测试: 5.等等 6.配合注解实现 7 .测试 ...
- Spring(AbstractRoutingDataSource)实现动态数据源切换
参考:http://linhongyu.blog.51cto.com/6373370/1615895 一.前言 近期一项目A需实现数据同步到另一项目B数据库中,在不改变B项目的情况下,只好选择项目A中 ...
- mysql多数据源切换_Springboot项目实现Mysql多数据源切换的完整实例
一.分析AbstractRoutingDataSource抽象类源码 关注import org.springframework.jdbc.datasource.lookup.AbstractRouti ...
- SpringBoot+Mybatis 实现动态数据源切换方案
背景 最近让我做一个大数据的系统,分析了一下,麻烦的地方就是多数据源切换抽取数据.考虑到可以跨服务器跨数据库抽数,再整理数据,就配置了这个动态数据源的解决方案.在此分享给大家. 实现方案 数据库配置文 ...
- Spring(AbstractRoutingDataSource)实现动态数据源切换--转载
原始出处:http://linhongyu.blog.51cto.com/6373370/1615895 一.前言 近期一项目A需实现数据同步到另一项目B数据库中,在不改变B项目的情况下,只好选择项目 ...
最新文章
- 服务器系统linux怎么安装教程,CentOS 8.0.1905 linux服务器系统安装与配置图解教程...
- Eclipse Spring Boot实现热部署
- Delete Edges 完全图-找规律
- 作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?...
- options请求_前端数据请求的终极方案
- Ubuntu镜像下载地址
- 87.http upstream模块提供的变量
- 开源工具软件XMusicDownloader——音乐下载神器
- mysql event demo_MySQL定时任务event
- 破解硬盘还原卡与还原精灵
- linux opengl安装教程,Linux下OpenGL的安装与cmake编译OpenGL程序
- 电子秤PCBA方案的功能及设计
- 中山大学本科偏微分方程试题
- 计算机桌面为什么没有语言栏了,电脑还原桌面的时候语言栏里怎么什么都没有了,只有到打字的时候才显示 ,这是为什么啊...
- java随机生成迷宫游戏地图_java随机生成迷宫(图的深度优先遍历)
- 搞清楚php-FPM到底是什么?
- [技术分享 – FCS 篇] 驭龙五式5之神龙摆尾:如果没有 WSUS…
- Nginx配置http升级https
- python 余弦距离_距离最小余弦
- The repository ‘https://ppa.launchpadcontent.net/ubuntugis/ppa/ubuntu jammy Release‘ does not have a