Skip to content

搜索规则 (ruleSearch)

定义如何从搜索结果页提取书籍列表。

规则字段

json
{
  "ruleSearch": {
    "bookList": "",
    "name": "",
    "author": "",
    "kind": "",
    "wordCount": "",
    "intro": "",
    "coverUrl": "",
    "bookUrl": ""
  }
}

字段说明

字段必需说明
bookList书籍列表的选择器
name书名选择器
author作者选择器
bookUrl书籍详情页链接
coverUrl封面图片URL
intro简介
kind分类/标签
wordCount总字数
lastChapter最新章节

示例

CSS 选择器示例

json
{
  "ruleSearch": {
    "bookList": ".search-list li",
    "name": "h3 a@text",
    "author": ".author@text##作者:",
    "bookUrl": "h3 a@attr[href]",
    "coverUrl": "img@attr[src]",
    "intro": ".intro@text",
    "wordCount": ".words@text##万字",
    "lastChapter": ".latest@text"
  }
}

JSON API 示例

json
{
  "searchUrl": "https://api.example.com/search?q=${key}&page=${page}",
  "ruleSearch": {
    "bookList": "@json:$.data.books",
    "name": "@json:$.title",
    "author": "@json:$.author",
    "bookUrl": "@json:$.book_id##https://example.com/book/${id}",
    "coverUrl": "@json:$.cover"
  }
}

高级技巧

数据清洗

## 移除不需要的文本:

.author@text##作者:  # 移除"作者:"前缀

URL 补全

相对路径自动补全,也可手动拼接:

bookUrl@attr[href]##${baseUrl}  # 基础URL + 相对路径

列表为空处理

如果一页只有一本书,bookList 可以省略:

json
{
  "name": "h1.title@text",
  "author": ".info .author@text"
}