# 书源
**Repository Path**: tianshideyou/book-source
## Basic Information
- **Project Name**: 书源
- **Description**: 搜索引擎式书源。全网搜书,全网榜单,能解析大多数网站的目录及正文,正文默认静态加载且没内容时自动切换成动态加载模式,通过搜索前缀和修改简介可实现单页浏览、目录逆向排序、正文纯图模式/纯字模式/图文模式等功能
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://gitee.com/no-mystery/book-source
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 20
- **Created**: 2021-02-06
- **Last Updated**: 2025-11-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
_本书源为阅读APP书源配置文件_
阅读APP下载:[http://www.legado.top/MyBookshelf/](http://www.legado.top/MyBookshelf/)
# :fa-list: 全网搜书用法
### :fa-search: 搜索格式定向搜索目标书籍
### :fa-film: [搜索格式定向搜索目标书籍示范视频](https://m.weibo.cn/6893627530/4583477582760192)
```
───搜索格式───
完全格式 书名#作者$网站
简化格式1 书名$网站
简化格式2 书名#作者
简化格式3 书名
简化格式4 #作者(仅夸克支持)
注①:仅夸克搜书 支持“#作者”指定作者搜索,这种方式得到的书籍与普通搜索最大的不同在于,借助了夸克官方的数据直接获取相关作者的书籍,然后从链接到的结果页中筛选出小说网站重定向过去直接观看
注②:仅谷歌搜书 关键字前加“<0>”可将域名设置为谷歌原网或加“<1>”设置为另一个镜像, 如“<0>斗破苍穹#天蚕土豆$www.qidian.com”(注:本源默认使用谷歌镜像,谷歌原网需挂VPN才能用)
```

### :fa-cogs: 加前缀或修改简介操控书源
```
──────前缀设置全体───────
转化:关键字前加“@”,`设置本次搜到的所有书籍`优先考虑将链接转化为电脑版,争取获得目录不分页的电脑版链接
单页:关键字前加“!”,`设置本次搜到的所有书籍`搜到什么点开就是什么,不做目录识别也不做章节识别,自动为当前网页构造目录,当前网页的内容储存在“预览内容”中
跳转:关键字前加“^”,`设置本次搜到的所有书籍`允许目录自动跳转,目录标题中写着点击跳转时可如此做。
逆向:关键字前加“-”,`设置本次搜到的所有书籍`目录章节逆向排序,配合指定网站的搜索方式针对小说全是逆向排序的网站比较方便。
图文:关键字前加“|”,`设置本次搜到的所有书籍`正文只查询文字,不查询图片。或关键字前加“_”,`设置本次搜到的所有书籍`正文只查询图片,不查询文字。这两个前缀只能设置其一,都不设置时默认图文都查询。
注①:前缀只能按顺序叠加,如“@^-|”、“!|”、“@-|”
注②:若谷歌搜书加前缀重新设置域名,也采用通过添加前缀的方式控制书源,则“<0>”或“<1>”必须在最前面,即“<0>!|”或“<1>@^”等。
```

```
──────简介设置单本───────
说明:将特定字段插入简介保存后,点刷新可实现目录跳转、目录逆向排序、目录链接指定等多种功能。
局限:修改简介再点刷新只会控制当前书籍执行指定功能,想控制所有书籍执行指定功能,请采用上面`前缀设置全体`的方式在关键字前加相应前缀并重新搜索
格式:将以下文字放在“{}”中并整体插入到简介最前端就会触发相应功能
─────⤵
转:尽量考虑将链接转化为电脑版,争取获得目录不分页的电脑版链接
直:不做目录识别,直接将详情页作为目录页,或以“直[目录链接]”格式直接指定目录链接,目录识别错误时可这种做。
跳:允许目录自动跳转,目录标题说点击跳转时可如此做。
全:直接显示“预览正文”和查询到的所有章节,跳过章节筛选环节,单页文章和部分筛选后章节不全的小说网站可这样做。
逆:设置目录章节逆向排序。
图:设置成看图模式(默认为图文模式),只显示图片,不显示文字。
字:设置成纯字模式(默认为图文模式),只显示文本,不显示图片。
─────⤴
示例:{直[http://m.biquku.la/0/425/]全字}
效果:
①直接将“http://m.biquku.la/0/425/”作为小说目录链接
②显示元素查询得到的全部章节列表,不做章节筛选
③以纯文字模式查找正文内容,避免图片干扰。
```

```
───搜索引擎的通用搜索───
比如“玄幻小说”直接搜索玄幻小说
比如“斗破苍穹 site:www.qidian.com”采用搜索引擎技巧搜索,等同于“斗破苍穹$www.qidian.com”
比如“武神 塔读”
比如“忘语 大梦主”
```
```
───混用搜索引擎式和全网搜书式───
简言:`<前缀>书名#作者$域名`中,
书名前后的关键字都只能是文字描述的模样
作者处只能填作者,域名处只能填域名,前缀处只能填前缀
但书名处则可以完全套用“搜索引擎的通用搜索格式”,自由发挥,浏览器能怎么搜这里就能怎么填
例子:“|我的 玄幻小说$www.qidian.com”
含义:在“www.qidian.com”中搜名称含“我的”的玄幻小说,设置搜到的书籍正文都只查询文字
```
# 同名书籍换源
现象:在搜索界面点不同的结果进去会发现详情页不会自动跟着换源。
原因:搜索界面中“书名+作者”相同的搜索结果会自动储存在同一个换源列表中,如果前后两次点进去的结果在搜索界面中“书名+作者”相同,那么详情页是不会自动跟着换源的,需点进换源列表点击更换来源。
下页:如果都还没有符合要求的结果,退回搜索界面,上拉刷出下一页,会有更多结果,总之搜索引擎的所有结果页都能通过上拉全部刷出来。
# 搜索没有结果
原因一:阅读APP版本太低,不支持书源使用到的新API,请下载最新版
原因二:搜索分组勾选了“精确搜索”,搜索结果被软件屏蔽
# 书源相关链接
全网搜书(Pro V19):[https://gitee.com/no-mystery/book-source/raw/master/%E5%85%A8%E7%BD%91%E6%90%9C%E4%B9%A6(%E7%99%BE%E5%BA%A6%E3%80%81%E8%B0%B7%E6%AD%8C%E3%80%81%E5%A4%B8%E5%85%8B).json](https://gitee.com/no-mystery/book-source/raw/master/%E5%85%A8%E7%BD%91%E6%90%9C%E4%B9%A6(%E7%99%BE%E5%BA%A6%E3%80%81%E8%B0%B7%E6%AD%8C%E3%80%81%E5%A4%B8%E5%85%8B).json)
书源合集(107=修复44+自制9+优化39+整理15):[https://gitee.com/no-mystery/book-source/raw/master/%E4%B9%A6%E6%BA%90%E5%90%88%E9%9B%86(%E5%A4%B1%E6%95%88%E4%BF%AE%E5%A4%8D%20%E8%87%AA%E5%88%B6%20%E4%BC%98%E5%8C%96).json](https://gitee.com/no-mystery/book-source/raw/master/%E4%B9%A6%E6%BA%90%E5%90%88%E9%9B%86(%E5%A4%B1%E6%95%88%E4%BF%AE%E5%A4%8D%20%E8%87%AA%E5%88%B6%20%E4%BC%98%E5%8C%96).json)
网络导入->源仓库订阅:[https://gitee.com/no-mystery/book-source/raw/master/%E6%96%B0%E7%89%88%E6%BA%90%E4%BB%93%E5%BA%93%E8%AE%A2%E9%98%85.json](https://gitee.com/no-mystery/book-source/raw/master/%E6%96%B0%E7%89%88%E6%BA%90%E4%BB%93%E5%BA%93%E8%AE%A2%E9%98%85.json)
# :fa-magic: 全网搜书思路
1. 把搜索引擎做成书源,借助搜索引擎全网搜书。
2. 搜索有多种方式(`书名#作者$网站`、`书名$网站`、`书名#作者`、`书名`、`#作者(仅夸克支持)`),具体用法见书源编辑界面首页的“源注释”和[用法展示视频](https://m.weibo.cn/6893627530/4583477582760192)。
其中夸克支持“#作者”指定作者搜索,这种方式得到的书籍与普通搜索最大的不同在于,借助了夸克官方的数据直接获取相关作者的书籍,然后从链接到的结果页中筛选出小说网站重定向过去直接观看。
3. 发现采用夸克官方分类排行榜,书籍链接指向夸克搜索结果页面,书源从中筛选出小说网站重定向过去直接观看,不满意的话,过段时间点详情页的刷新会重新定向到新的小说网站。
4. 书名采用关键字切割法,先获得初级书名,然后根据各种条件以及搜索页及详情页获取到作者名,进一步识别删除那种书名跟着的作者名或其它无关内容,然后对比网站提供的元数据和author相关标签,存在包含关系时选择其中最短的。
5. 分类、作者、最新章节规则优先识别网站元数据,网站相应元数据时改用最近文本识别法,用正则表达式进行内容抓取,先定位关键字,再查找是否仅跟冒号或处于标签末尾,然后排除一些常见错误定位,然后识别最近的下个文本。
6. 简介规则优先识别网站元数据,网站无相应元数据时改用内容识别法,通过各种判定规则先移除无用标签,避免无关文本被当做简介识别,再通过文本特征精确定位识别简介。
7. 目录链接采用“链接构造正则->正则识别链接”这种正则关联上下级链接的思想根据上级链接精确识别下级链接,并辅以一些目录识别关键字、目录链接关键字识别或排除相关链接,从而构造出专门识别目录链接的正则表达式去识别目录链接。
8. 章节链接优先使用从目录链接处传来的参考链接识别章节(目录链接处尽可能识别最新章节链接或书籍首章,若有则将其作为参考链接),若不成功则退而求其次采用与目录链接相似的识别方式,根据目录链接构造出专门识别章节链接的正则表达式去识别章节链接。
9. 正文规则:采用无用标签移除思想,使用各种判定规则找出所有不可能存在正文内容的标签并全部移除,从而避免获取到与正文无关的文字。
然后剔除链接及其环绕文字,以及网站插入的带有负数编号的宣传文本,再对正文中的`章节名、书名、页尾、未缩进文本(仅在正文存在缩进段落时对未缩进段落进行标记)`施加不同标记。
而且,自动判定正文是否需要动态加载,需要的会自动动态加载,不需要的继续保持静态加载。不需要动态加载的网页不会因为动态加载而变慢,需要动态加载的网站不会因为只静态加载而获取不到内容,两全其美。
10. 替换规则:结合正文添加的`章节名、书名、页尾、未缩进文本`四大标记的相互位置以及标记环绕文本,能快速安全的剔除绝大部分网站宣传文本,而且能根据网站强行切断点识别方法判断出这种网站强行切断段落的位置,并绕开不删被网站强行切断到下一页的未缩进正文重新将网站强行切断的内容合并。
此外:对英文及拼音字符串、数字、图片标签、非中英文字符进行标记,然后结合上下文判断出疑似广告的字符串并施加`特殊标记`,然后再结合上下文其它条件谨慎判断标记成广告的字符串是真广告还是小说内容
可指定为“图片模式”,采用专门识别图片的jsoup表达式识别img标签,排除网站图标、过渡动画等无关图片。且会自动跳过不执行只针对文字的替换规则。
可指定为“文字模式”,采用专门识别文字的jsoup表达式识别文本标签,排除图片及图片环绕文本的影响,识别正文更加干净。
11. 书中净化规则特意避开了img标签,净化的同时不会破坏图片显示,所以不仅可以搜书,还可以搜漫画。
12. 单页文章自动构造目录:当某个文章中不存在目录时,自动为将构造目录,从而可以浏览没有目录的单页网页
# 更新日志
```
通用书源V2,全网搜书Pro V19
───────
①目录url规则中,屏蔽仅含“追书”两个字的链接,解决类似“m.30sy.com/book/zaguomaitiequshangxue/”这种追书链接包含“chapterlist”而被误当做目录链接,从而导致目录定位出错的问题。
②目录url规则中,新增“showchapter”识别关键字,并将候补规则中排除“chapter”改为排除“/chapter”,纵横中文网等几个正版网站的目录终于不会识别出现偏差了。
③优化目录列表规则,屏蔽关键字的写法更严格,尽可能避免屏蔽到正常章节。
④目录下一页链接优化,当设置目录跳转时,所有目录分页的都动态加载,避免章节识别不全的问题。
⑤正文规则,新增当内容包含“内容未加载完成|关闭小说模式|关闭阅读模式”时自动动态加载的逻辑
```
```
Pro V18
──────
百度搜书:
重写三个(最新章节规则、详情页url规则、书名规则)与书籍来源网址相关的规则
搜索页最新章节规则:优先获取直接链接,其次获取文本中不包含“...”的快照链接的文本,再其次获取快照链接,再再其次获取标题链接,尽量获取到最接近原网站的网址。
详情页url规则:在搜索页最新章节规则处处理后向后传递变量,优先获取直接链接,其次获取快照链接,再其次获取标题链接
详情页书名规则:设置baseUrl,优先以直接链接设置,否则以base标签文本设置,否则以快照链接的文本设置(不是快照链接,是快照链接的文本)
像“www.cnoz.org”这样的网站,百度搜书终于也能看了。
所有书源:优化正文下一页规则网址以method=get方式加载时的处理方式
```
```
更新到Pro V5
────
一、简介精确识别上线!!
上个版本偷懒只用“[property$=description]”识别简介,现在则借用“正文的精准识别规则”,并在其基础上进行增删调整使其适用于识别简介内容。
目前为止,效果完美(识别能力强、识别到简介外文本的几率低)
二、正文内容识别规则升级:①能识别的网站更多②识别更加精确。
一直以来,不存在包含关系的并列元素,想判断紧挨着的两个都直接包含几十上百个文字的元素,那个是正文,那个不是正文一直都是个大难题,把规则搞严格了识别不到内容,把规则放松了又会识别到正文之外的文字。
经过我一天的研究测试后,终于想办法解决了这个难题。这个办法就是新增的“分解对比法”,先调整规则将上个版本无法识别到的内容识别到,然后按是否包含换行、是否是块元素、或都不是但包含文字的方式分为五组,不按长度逐一选取元素,而是按照分组中所有元素长度之后选取长度最长的分组。
现在,像“www.hetushu.com”、“www.6ks.net”这样的网站内容也能精确识别到了。
```
```
更新到Pro V4-2
────
优化章节名标记方法,识别删除插入内容中的章节名更加精确有效
优化目录URL规则中目录链接的父元素定位规则
```
```
更新到Pro V4(精简优化)
───
1、把阅读提供的变量都利用起来,删除所有不必要的java.put语句,避免无意间获取到空字符串。
2、加强最新章节规则,能识别更多情况。
3、加强正文规则,彻底消除旧规则用java.put传递变量为空时正文标记全文删除的现象。
4、把详情页的书名、作者、分类、最新章节规则合并起来写,避免一大堆无意义的相互转化和重复查询代码。
```
```
更新到Pro V3-3
────
1、综合测试书源设置{转直跳全逆动字},发现并修复一些错误。
①修复目录URL规则中未将book.customIntro转化为String,导致设置{直}时目录加载出错。
②修复目录列表规则中,设置{全}时使用了未定义变量b有问题,导致目录加载出错。
2、精简优化目录列表规则,代码更少,效果更好。
3、优化搜索页书名规则,解决一些网站识别到的书名包含额外文字的问题。
4、优化改进正文下一页规则:旧规则屏蔽了href="?page=2"这种下一页,现在不再屏蔽只有一段的链接。
───
专业版终于画上了句号
```
```
更新到Pro V3
────
综合测试书源设置:{转直跳全逆动字}、{转直跳全逆动图},发现两个错误。
1、修复目录URL规则中未将book.customIntro转化为String,导致设置{直}时目录加载出错。
2、修复目录列表规则中,设置{全}时使用了未定义变量b有问题,导致目录加载出错。
3、优化精简目录URL规则。
───
专业版终于画上了句号
```
```
更新到Pro V2-1
───
终于实现了“百度搜书”的“尽可能转化链接为电脑版”的功能。
这样一来,谷歌搜书、百度搜书、夸克搜书(原夸克原网、夸克电脑合二为一)都可以通过前缀和修改简介启动这个功能了。
```
```
更新到Pro V2
───
0、移除夸克原网用于测试的详情页链接,无论怎么搜目录都一样的现象不会发生了。
1、将夸克电脑并入夸克原网,以后两者的功能都用夸克搜书实现。
2、同时采用关键字加前缀和修改简介的方式控制书源的执行效果。
注:两者的区别是,加前缀搜索影响所有书籍,修改简介再点刷新只影响当前书籍。
```
```
更新到Pro V1-2
───
优化目录识别规则:旧规则中,识别到的目录链接为以“javascript:”开头时,会直接将当前页作为目录页,新规则新增排除一种情况,链接即使以“javascript:”开头,只要元素包含“最新”字段时,依然会继续查找其它目录链接。
```
```
更新到Pro V1-1
───
功能:将特定字段插入简介保存后,点刷新可实现目录跳转、正文动态加载、目录逆向排序、目录链接指定等多种功能。
位置:插入到简介最前端
格式:在“{}”中包含以下文字就会触发相应功能
─────⤵
直:不做目录识别,直接将详情页作为目录页,或以“直[目录链接]”格式直接指定目录链接,目录识别错误时可这种做。
跳:允许目录自动跳转,目录标题说点击跳转时可如此做。
全:直接显示“预览正文”和查询到的所有章节,跳过章节筛选环节,单页文章和部分筛选后章节不全的小说网站可这样做。
逆:设置目录章节逆向排序。
动:正文动态,设置正文动态加载,内容为空时可如此做。
图:设置成看图模式(默认为图文模式),只显示图片,不显示文字。
字:设置成纯字模式(默认为图文模式),只显示文本,不显示图片。
─────⤴
示例:{直[http://m.biquku.la/0/425/]全动字}
效果:①直接将“http://m.biquku.la/0/425/”作为小说目录链接②显示元素查询得到的全部章节列表,不做章节筛选③以纯文字模式查找正文内容,避免图片干扰。④动态加载正文内容
```
```
更新到V60,改头换面
────
1、完全重构“百度搜书”详情页所有规则。
解决由于java.getElement漏洞导致获取内容缺失,使得详情页所有规则都有一定几率无法获取到有效信息的难题。
解决由于java.getElement获取的内容缺失误导目录链接识别机制,导致将非目录链接当做目录链接的难题,如“www.wujiuwenxue.com”。
重构前,有快照时用快照,此时一切正常。无快照时,目录章节为相对链接时会拼接出错,导致正文获取失败。
重构后,有快照时用快照,无快照时自动跳转并将baseUrl设置成跳转后的网站,不管有无快照都能正确拼接章节链接。
2、所有书源详情全部改为先预处理剔除不必要的内容,再用java.setContent格式化设置内容。
设置内容之后出现的规则全部简化,原来用于剔除不必要内容的规则全部删除,因为已不需要。
3、目录链接规则:章节链接的父元素识别方法从“:not(:matchesOwn(\S),:has(:not(a):matchesOwn(\S)+:has(a:only-child):only-child,:not(a):matchesOwn(\S)+a:only-child))”简化为“matchesOwn(^$)”,效果更好,代码更少。
4、去除详情页“────”分隔的内容,因为阅读已经支持详情页复制URL了,这个设计的作用就不大了,故将用于获取额外内容的所有代码全部删除。
5、优化正文未缩减段落标记,避免有些网站会变得全成一段,且由此导致误删部分内容。
6、改进目录链接无文本时的识别方法,为这种链接的识别关键字添加前后字段限制,并屏蔽“hot|sort|top”三个关键字,避免把分类排行当做目录。
7、优化夸克搜书详情页规则,避免执行不必要的语句,删除不必要的变量。
8、删除“夸克电脑”的发现页:
①因为和“夸克原网”得到的结果一样,重复没有意义。
②删除发现页后,详情页可去除大量不必要的判断语句,加载详情页变快。
9、重构夸克电脑所有界面中链接的处理方式,争取让夸克原网和夸克电脑具有明显的区别,各展所长。
这次更新后,夸克原网与夸克电脑将有如下区别
────夸克原网────
特点:进退自如
⓪有发现
①搜索页加载快(不考虑转化链接为电脑版)
②关键字加“@”前缀,可允许目录链接自动跳转
③关键字加“$”前缀,可指定章节链接动态加载(不指定时静态加载)。
静态加载比动态加载快很多,但指定动态加载后能读取到需要异步加载才能显示的网页正文,比如大多数漫画网站以及部分正版小说网站。
────夸克电脑────
特点:懒人专属
①无发现,且搜索页加载慢(优先考虑转化链接为电脑版,争取获得目录不分页的电脑版链接)
②取消关键字加“@”前缀的设定,因为需要目录链接自动跳转的情况很少
③取消关键字加“$”前缀的设置,对所有章节都采用动态加载。
正文加载等同于“夸克原网”加“$”前缀的效果,好处是不用考虑内容需不需要动态加载,坏处是对于不需要动态加载就能显示内容的网站来说,凭白无故降低了加载正文的速度。
PS:更多相关信息,源注释都有介绍
```
# 使用示范图片
──────────────────────────────────
## 夸克官方排行榜

## 玄幻热搜榜

## 详情页

## 换源列表

## 搜索格式:书名#作者$网站

## 搜索格式:书名#作者

## 搜索格式:书名$网站

## 搜索格式:#作者

# 净化前后对比
# 示范一
──────────────────────────────────
## 净化前


## 净化后

# 示范二
──────────────────────────────────
## 净化前


## 净化后

# 示范三
──────────────────────────────────
## 净化前

## 净化后

# 示范四
──────────────────────────────────
## 净化前


## 净化后
