Skip to content
This repository has been archived by the owner on Apr 10, 2022. It is now read-only.

2.x 解析规则

Xian Dan edited this page Dec 31, 2019 · 1 revision

解析规则文件在main/resources/rule.json,基于XPath,支持本地文件和网络文件,配置中默认使用网络文件,如果修改了解析规则,还需要在配置文件rule.json.uri修改到你的文件路径

字段说明

{
    //源站名称 解析时会根据名称获取规则,必须唯一
    "site": "种子搜",

    //该源站是否需要代理才能访问
    "proxy": false,

    //Item容器XPath
    "group": "//table[@class='table table-bordered table-striped']",

    //磁力链XPath
    "magnet": "./tbody/tr[1]/td/div/h4/a/@href",

    //显示名称XPath
    "name": "./tbody/tr[1]/td/div/h4/a",

    //文件大小XPath
    "size": "./tbody/tr/td[2]/strong",

    //创建时间XPath
    "date": "./tbody/tr/td[1]/strong",

    //人气热度XPath
    "hot": "./tbody/tr[2]/td[3]/strong",

    //源站首页
    "url": "https://www.zhongzilou.com",

    //源站搜索路径 %s=关键字 %d=页码
    "paths": {

      //默认排序
      "preset": "/list/%s/%d",

      //时间排序
      "time": "/list/%s/%d",

      //大小排序
      "size": "/list_length/%s/%d",

      //人气排序
      "hot": "/list_click/%s/%d"
    },

    //详情页信息(可选,如果为null则不会显示和详情页相关的按钮) 2.1.1后新增
    "detail": {

      //文件列表Item XPath
      "files": "//*[@id=\"wrapp\"]/div[2]/div/div/div[3]/div[1]/div[2]/div[2]/select/option"
    }
}

获取XPath

group

group表示每个Item的容器元素,选中列表其中一个Item,右键复制XPath,示例中选中的是第5个,复制出来的XPath是//*[@id="wall"]/div[2]/div[5],把索引去掉并转义,所以最终是//*[@id=\"wall\"]/div[2]/div

在浏览器控制台用$x("//*[@id=\"wall\"]/div[2]/div")测试,打印出列表说明XPath正确

magnet | name | size | date | hot

以name为例,选中包含名称的元素,复制出来的XPath是这样//*[@id="wall"]/div[2]/div[5]/div[1]/h3/a,因为每个属性都是在group下查找的,所以要把group的部分去掉在前面加.name的XPath应该是./div[1]/h3/a