文章目录
- 一、背景介绍
- 二、书源文件
- 三、详解制作书源
- (一)打开Web服务
- (二)参考网结构解释
- (三)阅读书源 基础
- (四)阅读书源 发现
- (五)阅读书源 详细
- (六)阅读书源 目录
- (七)阅读书源 正文
- (八)阅读APP 调试规则
一、背景介绍
阅读APP
是一款优秀的开源读书软件,用官方的文档介绍就是:
- 界面简洁,专注阅读
- 体积虽小,功能齐全
- 书源丰富,全网打进
- 书源编辑,自给自足
- 发现板块,寻书简便
- 自定排版,功能丰富
官方开源地址:https://github.com/gedoor/legado
官方制作书源教程地址:https://mgz0227.github.io/The-tutorial-of-Legado/Rule/source.html
本文将参考官方的教程详细介绍制作一个 参考网
杂志的阅读书源的过程,可以方便地在 阅读APP
上阅读过期的期刊。
杂志它不像名著那样晦涩艰深难懂,又不像爽文那样一过之后没有留下任何痕迹。杂志会向我们呈现社会的不同面,揭露人间的真善美,假恶丑,阐述着不同的观点,引领我们去辩证地思考,去辨别复杂事物下的最核心的根本,启迪我们的智慧,在这个世界留下安静的一隅。
参考网
是一个过期杂志阅读平台,地址如下:https://www.fx361.com/
在 阅读APP
呈现的效果如下:
二、书源文件
{"bookSourceName": "参考网","bookSourceType": 0,"bookSourceUrl": "https://www.fx361.com/","customOrder": 0,"enabled": false,"enabledCookieJar": true,"enabledExplore": true,"exploreUrl": "《读者》2025年::https://www.fx361.com/bk/dz/history_2025.html\n《读者》2024年::https://www.fx361.com/bk/dz/history_2024.html\n《意林》2025年::https://www.fx361.com/bk/yl/history_2025.html\n《意林》2024年::https://www.fx361.com/bk/yl/history_2024.html","lastUpdateTime": 1744201963234,"respondTime": 180000,"ruleBookInfo": {"author": "class.upt@text","coverUrl": "class.fm@href","intro": "class.rec@tag.p@text","name": "class.til@text"},"ruleContent": {"content": "@.detail_body>:not(div)@all##<([^>]+)style[^<]+<[^>]+>","title": "id.title@text"},"ruleExplore": {"author": "tag.span.0@text","bookList": "class.results@children","bookUrl": "tag.a@href","coverUrl": "tag.img@data-original","intro": "text","name": "tag.span.1@text"},"ruleSearch": {"author": "","bookList": "","bookUrl": "","coverUrl": "","name": ""},"ruleToc": {"chapterList": "class.list_01@children","chapterName": "tag.a@title","chapterUrl": "tag.a@href","isVolume": ""},"searchUrl": "","weight": 0
}
此 书源
默认添加了 《读者》2025年、《读者》2024年、《意林》2025年、《意林》2024年 。如果需要其它期刊杂志,可以先去参考网拿到地址,然后编辑书源,添加到发现里的发现地址规则url
(另起一行)中,格式为 期刊名::期刊地址
。
三、详解制作书源
(一)打开Web服务
为了方便编辑和调试书源,可以打开 阅读APP
的 Web服务
,在电脑上使用网页进行编辑书源。
在 书源APP
的主页中点击 我的
,随后打开 Web 服务
随后,使用处于局域网的电脑输入 Web服务
的地址,会展示 Web服务
的主页
随后点击 Web服务
的 书源
,进入编辑书源的 主页
(二)参考网结构解释
首先浏览参考网
,其结构是这样的:期刊-年份
> 具体期数杂志
> 正文
以 读者
为例:
期刊-年份
:https://www.fx361.com/bk/dz/history_2025.html
具体期数杂志
:https://www.fx361.com/bk/dz/20257.html
正文
:https://www.fx361.com/page/2025/0328/26388561.shtml
这样的结构是与 阅读APP
的结构匹配上的:发现
- 详细
- 目录
- 正文
(三)阅读书源 基础
在 基础
设置页面,这里只需要填写必填项即可。
源类型
:选择 文本
源域名
:https://www.fx361.com/
源名称
:此项是展示在发现页时的名称,即书源名称,可以任意填写
(四)阅读书源 发现
在此处需要根据网页的结构在指定的地方填写书源规则,此处将进行依次分析。
发现地址
:即是期刊-年份主页地址,需要从 参考网
网页中进行获取,编写规则可使用简单的 期刊名::期刊地址
,每一行即为一条发现规则。
本页面剩下的规则是从发现地址的网页内容中进行获取。
以 《读者》2025年为例,可以按照如下的方式划分以符合 阅读APP
的 发现
中的规则。
在此页面按 F12
打开网页的调试工具,查找指定元素的规则。
从这个页面中,可以看到 列表
是在名为 results
的class
的 一个 <ul>
标签下的 <li>
标签下。
<ul class="results"><li><a href="/bk/dz/20258.html" title="读者" target="_blank"><img class="lazyload" data-original="https://cimg.fx361.com/images/2025/0415/duzh202508-l_mini.webp" alt="读者" src="https://cimg.fx361.com/images/2025/0415/duzh202508-l_mini.webp" style=""><span>读者</span><span>2025年8期</span></a></li>...
</ul>
因此根据 JSOUP
之 Default
的规则,
编写 列表规则
为 class.results@children
。
随后 书名
和 作者
是在一本书的 <li>
标签的 <span>
,其 书名规则
为 tag.span.1@text
,作者规则
为 tag.span.0@text
。
而 封面规则
则是标签 <a>
下的 data-original
的元素的地址,即是 tag.img@data-original
。
而 详细规则
则是标签 <a>
下的 href
的元素的地址,即是 tag.a@href
。
(五)阅读书源 详细
此页面填写是基于上一个网页的 详细页面
的地址的网页内容,根据 阅读APP
的详细划分页面。
按下 F12
,取出对应位置的元素,编写相应的规则。
<a class="fm" href="https://cimg.fx361.com/images/2025/0329/duzh202507-l.webp" target="_blank"><img src="https://cimg.fx361.com/images/2025/0329/duzh202507-l.webp" alt=""></a>
<p class="upt">2025年7期</p>
<div class="rec"><h4>刊物介绍</h4><p>《读者》杂志发掘人性中的真、善、美,体现人文关怀。追求高品位、高质量,力求精品,并以其形式和内容的丰富性及多样性,赢得了各个年龄段和不同阶层读者的喜爱与拥护。</p>
</div>
<span class="til">读者</span>
书名规则
:class.til@text
作者规则
:class.upt@text
简介规则
:class.rec@tag.p@text
封面规则
:class.fm@href
(六)阅读书源 目录
由在详细页面所划分的目录来编写目录规则
<div id="dirList" class="dirList"><div class="dirItem02"><h5>卷首语</h5><ul class="list_01"><li><a href="/page/2025/0328/26388561.shtml" title="观察的艺术">观察的艺术</a></li></ul></div><div class="dirItem02"><h5>专题</h5><ul class="list_01"><li><a href="/page/2025/0328/26388563.shtml" title="俞公养山">俞公养山</a></li><li><a href="/page/2025/0328/26388565.shtml" title="12306之恋">12306之恋</a></li></ul></div>...
</div>
可以看到,目录是在名为 list_01
的 class
下的 子元素,因此规则如下:
列表规则
:class.list_01@children
章节名称
:tag.a@title
章节地址
:tag.a@href
(七)阅读书源 正文
从目录的章节地址
的网页地址对应内容制作正文的规则。
使用此网页进行编辑:https://www.fx361.com/page/2025/0101/25140529.shtml
<div class="detail_main"><h1 id="title" data-id="25140529">江湖中的沉重正义</h1>...<div class="detail_body"><p class="txt"></p><figure><img src="https://cimg.fx361.com/images/2025/0108/my5oj4P2ncr4dhCDKWbNFM.webp"><figcaption></figcaption></figure><p>“老婆和老妈掉进水里,你先救谁?”这样无聊的问题,普通人一辈子也未必会遇到,但在《射雕英雄传》里,郭靖就遭遇了类似的灵魂之问。</p><p>情同手足的结义兄弟拖雷要南侵襄阳,自己该不该为了“大义”暗杀兄弟?郭靖思想斗争了几个时辰,坐卧难安,自己究竟要不要做出一个突破基本道德伦理的决定?</p><h3>刺杀拖雷的理由</h3><p>郭靖和拖雷一起玩闹、一起成长、一起出生入死,虽然早早就结为“安答(兄弟)”,但“安答”二字的含义是随着二人的共同经历逐渐变得丰富并真切起来的。</p>...<p>郭靖和辛亥革命前后的<mark style="position:absolute;left:-100000px;">785e6ac9477437b1d942b45d61a1141324b5d4cbbf5a0464d55891b23bf88af0</mark>暗杀者所犯的共同错误,都是将社会历史之命运寄希望于“个人浪漫的奇迹”上。对郭靖而言,江山存亡、宋室安危、胡汉气数,似乎凭借拖雷的头颅就能通通改变。这显然并不现实。</p>...<div class="other_pel mt80"><p class="fl"><a href="/bk/dz/20251.html" target="_blank"><img src="https://cimg.fx361.com/images/2025/0108/duzh202501-l.webp" alt=""></a><span class="p1"><a href="/bk/dz/" target="_blank">读者</a></span><span class="p2"><a href="/bk/dz/20251.html" target="_blank">2025年1期</a></span></p><dl class="fl"><dt>读者的其它文章</dt><dd><a href="/page/2025/0101/25140570.shtml" title="征稿启事">征稿启事</a></dd><dd><a href="/page/2025/0101/25140569.shtml" title="微书摘">微书摘</a></dd><dd><a href="/page/2025/0101/25140568.shtml" title="使人留恋的东西">使人留恋的东西</a></dd><dd><a href="/page/2025/0101/25140567.shtml" title="听一首歌">听一首歌</a></dd><dd><a href="/page/2025/0101/25140566.shtml" title="某个人的全部">某个人的全部</a></dd><dd><a href="/page/2025/0101/25140565.shtml" title="凌乱之美">凌乱之美</a></dd></dl></div></div>
</div>
根据网页内容,标题规则
为 id.title@text
而正文规则
有些许复杂,从网页内容可以看到,正文
是在名为 detail_body
的 class
中的 <div>
元素下,这里面是带 图片
的富文本内容
,但是 <div>
元素是不需要,同时需要去掉带 style
标签内容。
此处需要使用 JSOUP
之 CSS
的规则选择detail_body
的 class
中的<div>
元素,并排除<div>
元素,并配合正则表达式替换 style
标签内容。
因此 正文规则
如下:@.detail_body>:not(div)@all##<([^>]+)style[^<]+<[^>]+>
(八)阅读APP 调试规则
此处附上几条调试规则
官方教程写的是非常详细,但部分地方需要一定的网页基础才可以理解,可以多阅读几遍文档,并善于利用文档 在线测试
的网页,多次测试规则,即可掌握编写规则的核心。