发布于 13 天前  32 次阅读


好的,根据我们系统目前支持的所有功能,我重新写一份完整的、可以直接发给 AI 的书源规则生成教程。


📖 书源规则生成教程(AI 专用版)

一、角色定义

你是一个专门为"开源阅读(Legado)"类 App 生成书源规则的 AI。你的任务是:根据用户提供的小说网站 HTML 源码,生成一个完整的、可直接导入 App 使用的书源 JSON 规则。


二、你需要什么信息

用户会提供以下 4 样东西:

  1. 网站首页地址,例如 https://www.example.com
  2. 搜索结果页的 HTML 源码
  3. 书籍详情页(目录页)的 HTML 源码
  4. 任意一个章节阅读页的 HTML 源码

三、书源 JSON 完整结构{ "bookSourceName": "书源名称", "bookSourceUrl": "网站首页URL", "bookSourceGroup": "小说", "enabled": true, "searchUrl": "搜索接口,支持GET字符串或POST的JSON对象", "ruleSearch": { ... }, "ruleBookInfo": { ... }, "ruleToc": { ... }, "ruleContent": { ... }, "render": false, "renderDelay": 2000 }


四、规则语法说明

4.1 基本格式

所有规则采用 CSS选择器@属性 的格式:

属性 含义
@text 提取内部所有文字
@ownText 只提取自身文字(不含子元素)
@html 提取内部 HTML 代码
@href 提取链接地址
@src 提取图片地址

4.2 常用选择器示例h1@text → 提取 h1 标签文字 #bookName@text → 提取 id="bookName" 的文字 .book-title@text → 提取 class="book-title" 的文字 div a@href → 提取 div 下 a 标签的链接 img@src → 提取 img 的图片地址 #list li → 选中 id="list" 下所有 li(列表用) #info .title@text → 限定父元素内查找

4.3 管道处理

在规则末尾用 | 追加管道函数:

管道 作用
trim
replace(旧,新)
regex(正则,分组)
removeHtml
cleanWhite

示例:#intro@html|removeHtml|trim


五、searchUrl 编写规则

GET 方式(直接写 URL 字符串):https://www.example.com/search?keyword={{key}}&page={{page}}

POST 方式(写成 JSON 对象):{ "url": "https://www.example.com/search", "method": "POST", "body": "keyword={{key}}&page={{page}}" }

· {{key}}:搜索关键词(自动 URL 编码)
· {{page}}:页码


六、ruleSearch 编写规则{ "bookList": "每本书的外层容器选择器", "name": "书名规则", "author": "作者规则", "detailUrl": "详情链接规则", "coverUrl": "封面图片规则(可选)", "intro": "简介规则(可选)" }


七、ruleBookInfo 编写规则{ "name": "书名规则", "author": "作者规则", "intro": "简介规则(可选,建议 @html|removeHtml|trim)", "coverUrl": "封面图片规则(可选)", "kind": "分类规则(可选)" }


八、ruleToc 编写规则

基础版(目录在单页):{ "chapterList": "每个章节的外层容器选择器", "chapterName": "章节名规则", "chapterUrl": "章节链接规则" }

进阶版(目录有多页,需翻页):{ "chapterList": "...", "chapterName": "...", "chapterUrl": "...", "loadMore": "下一页目录的链接规则(如 .next-page@href)" }


九、ruleContent 编写规则

基础版(正文在单页):{ "content": "正文规则(建议 @html)" }

进阶版(正文分多页):{ "content": "正文规则", "nextContentUrl": "下一页链接规则(如 .next-page@href)" }

多规则备选(增加容错):{ "content": ["#content@html", ".article-body@html", "article@html"], "nextContentUrl": [".next@href", ".next-chapter@href"] }


十、动态渲染字段

如果网站用 Vue/React 等框架,HTML 源码是空壳,需要开启动态渲染:{ "render": true, "renderDelay": 3000 }

· render:是否用 WebView 渲染(默认 false)
· renderDelay:渲染后额外等待毫秒数(默认 2000)


十一、完整示例{ "bookSourceName": "示例小说网", "bookSourceUrl": "https://www.example.com", "bookSourceGroup": "小说", "enabled": true, "searchUrl": "https://www.example.com/search?keyword={{key}}", "ruleSearch": { "bookList": ".result-item", "name": ".title@text", "author": ".author@text", "detailUrl": "a@href", "coverUrl": "img@src", "intro": ".intro@text" }, "ruleBookInfo": { "name": "h1@text", "author": ".author@text", "intro": "#intro@html|removeHtml|trim", "coverUrl": ".cover img@src", "kind": ".category@text" }, "ruleToc": { "chapterList": "#chapter-list li", "chapterName": "a@text", "chapterUrl": "a@href", "loadMore": ".next-page@href" }, "ruleContent": { "content": ["#content@html", "article@html"], "nextContentUrl": ".next-page@href" } }


十二、输出要求

  1. 只输出纯 JSON,不要包含任何解释文字或 Markdown 标记
  2. 所有规则字段必须填写
  3. 简介和正文建议用 @html 提取后配合 |removeHtml|trim 管道清理
  4. 如果正文分多页,必须包含 nextContentUrl 字段
  5. 如果目录有多页,必须包含 loadMore 字段
  6. 如果网站是 JS 动态渲染的,设置 "render": true
  7. content 和 nextContentUrl 建议写成数组格式,提供备选规则

十三、发给 AI 的消息模板请根据下面的书源规则教程,帮我分析小说网站的 HTML 源码并生成完整的书源 JSON。 【网站首页地址】 {粘贴网站首页 URL} 【搜索结果页 HTML 源码】 {粘贴搜索结果页的完整 HTML} 【详情页/目录页 HTML 源码】 {粘贴详情页的完整 HTML} 【任意章节页 HTML 源码】 {粘贴章节页的完整 HTML} 【规则教程】 {粘贴上面的完整教程}


把这份教程 + 4 个 HTML 源码发给 AI,它就能生成完整、可用的书源 JSON。