123下一页
返回列表 发布新帖

[教程] 分卷(volume标识)规则的写法

341 20
发表于 2025-3-13 17:44:38 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 等等 于 2025-3-14 18:33 编辑

以下个人理解,欢迎探讨。

一、什么是分卷
我们平时阅读时,会遇到作者或网站给章节分卷的情况,比如下图,红线部分即为分卷卷名:
01.webp
在阅读app里,分卷是一种特殊的章节,如果写了分卷规则,目录就会以灰色背景显示卷名,如下图:
02.webp

除了还原原网站排版,也可以用于展示某些被网站隐藏地址的目录
比如 https://ysqbbs.com/forum.php?mod=viewthread&tid=23640 这个帖子提到的网站 https://www.fd80s.com,用一般方法写成书源时,因为缺少章节url,第六、第十一章是不会显示在目录里的:
08.webp

二、分卷的特点
①与普通章节一样,需要从目录列表中获取,需要有对应的章节名称
②与普通章节不同,分卷对应的章节URL需要为空(result=""),如果不为空,则需要用js处理一下,使获取结果为空
与普通章节不同,volume规则获取到的结果为 true 或其他非空值。如果volume规则结果为 flase 或 "" ,判断为普通章节

三、分卷规则的写法
①当目录列表类型为elements(包括用 default写法、jsoup.select、java.getElements等方式获得的列表)

先确保目录列表获取到卷名位置。
03.webp
https://hellowland.com/w/book/5627970 这本书为例,如果不写分卷,目录规则只需要包含上图的蓝框部分,即:
  1. .px-4 a
复制代码
写分卷,那么目录规则需要包含红框部分:
  1. .accordion-button,.px-4 a
复制代码


章节名称规则也需要兼顾红框和蓝框:
  1. .mb-2@@text||text
复制代码


章节URL规则只需要包含蓝框,因为红框部分 href 已经为空,所以填:
  1. href
复制代码

又因为原网站不会自动补全网址,所以补充章节URL规则为
  1. href
  2. @js:
  3. result!==""?https://hellowland.com/"+result:""
复制代码


原网站仅分卷有aria-expanded属性,且值为"true",普通章节没有,故volume规则可直接填:
  1. aria-expanded
复制代码

如果没有这么方便的属性,那就自己写个判断,比如:
  1. href@js:result==""?true:false
复制代码

这行代码的意思是:获取 href 的值,当值为空时,返回 true ,否则返回 false
(前面知识点:volume规则的值为true时判断该章节为分卷)

如果是普通章节,没获取到url的情况下,调试会显示“目录x未获取到url,使用baseUrl替代”
写了volume规则后,调试时遇到分卷,则会显示“一级目录x未获取到url,使用标题替代”:
06.webp

最终规则和效果:
04.webp


②当目录列表类型为NativeArray数组
直接写进list.push即可,如图:
05.webp

注意:

当目录列表类型为NativeArray、填写了volume规则,且正文下一页是类似“text.下一@href”的形式时,碰到分卷,正文下一页不会在遇到目录已有章节时停止,而是会一直获取到全书章节结束。

解决方案:
手搓正文下一页判断条件。比如在目录页java.put章节列表,正文下一页规则中java.get,再用includes()判断获取到的下一页链接是否在章节列表中


评分

参与人数 8源币 +48 收起 理由
活力宝 + 10 谢谢@Thanks!
137032992 + 2 欢迎您来到源社区!
shusan + 20 源社区,有您更精彩!
壬二酸 + 8 感谢分享,您最好了!
Sylt1122 + 2 赞一个,好评!
读者202411 + 2 源社区,有您更精彩!
观者 + 2 源社区,有您更精彩!
jin1987 + 2 源社区,有您更精彩!

查看全部评分

评论20

jin1987Lv.4星光赞助(未赞助不可申请) 发表于 2025-3-13 17:49:22 来自手机 | 查看全部
感谢分享,学习一下
回复

使用道具 举报

cm的宝马Lv.4 发表于 2025-3-13 17:50:57 来自手机 | 查看全部
感谢讲解
回复

使用道具 举报

观者Lv.3 发表于 2025-3-13 17:52:11 来自手机 | 查看全部
感谢分享
回复

使用道具 举报

读者202411星光赞助(未赞助不可申请) 发表于 2025-3-13 17:57:04 来自手机 | 查看全部
感谢
回复

使用道具 举报

苏打水Lv.4星光赞助(未赞助不可申请) 发表于 2025-3-13 18:01:47 来自手机 | 查看全部
感谢教学
回复

使用道具 举报

Sylt1122Lv.5 发表于 2025-3-13 18:03:00 来自手机 | 查看全部
一点都看不懂。只能点个赞支持下了👍🏻
回复

使用道具 举报

奥德赛Lv.3 发表于 2025-3-13 18:27:19 来自手机 | 查看全部
感谢分享,虽然看不懂
回复

使用道具 举报

壬二酸Lv.15星光赞助(未赞助不可申请) 发表于 2025-3-13 18:43:13 来自手机 | 查看全部
原来是这样啊。长知识了
回复

使用道具 举报

慌绿龙虾Lv.3 发表于 2025-3-13 19:18:47 来自手机 | 查看全部
感谢分享
回复

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

ysqbbs@outlook.com

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加QQ群
Copyright © 2001-2025 源社区 版权所有 All Rights Reserved.
关灯 在本版发帖
扫一扫添加QQ群
返回顶部
快速回复 返回顶部 返回列表