Skip to content

节点内容规则

西红柿大芝麻 edited this page Jul 19, 2020 · 3 revisions

名称、作者、分类、简介、最新章节、图片、结果等,全都属于节点内容规则,由于实际情况的多样性,该规则可简单可复杂。

语法

  • CSS

    CSS标准只能选取节点,无法取内容。

    该类规则分为2部分,以 @ 符号分割,前部分与CSS标准一致,可省略(表示取根节点),后部分则是APP自定义行为。

    包括texthtmlinnerHtmlouterHtml取文本,srchrefdata-originalbid等取属性。

  • 其他

    XPath、JSONPath、js、正则等,其本身可以取到内容,建议需要用到时翻开语法手册参考。

APP其他行为

  • 正则

    rule##match##replacement##replaceFirstFlag

    形式如上,其中replacement和replaceFirstFlag均可以省略。

  • 拼接

    aa{{rule1}}bb{{rule2}}cc

    形式如上,使用{{}}对结果进行拼接。

  • 混写

    列表写xpath,内容写css,或者列表写js,内容用JSONPath,或者反过来,APP都可以自动识别和解析。

  • 级联

    $.html@css:html

    形式如上,请求结果是json,先用jsonath取文本,在用css规则对结果做网页解码。

例子

(一) 网页搜索结果取内容

这个例子只需要会根据class名称获取内容。

<li>
  <span class="btn_span">欧美电影</span>
  <em></em>
  <span style="width:695px;">
      <a href="/?m=vod-detail-id-49829.html" target="_blank" class="name">
           &nbsp;&nbsp;&nbsp;&nbsp;钢铁侠(高清)<img src="/template/m1938/images/huo.gif"></img>
      </a>
  </span>
  <em></em>
  <span class="hours">
      <font color="red">2020-07-20</font>
  </span>
  <em></em>
  <span>
      <a href="/?m=vod-detail-id-49829.html" class="star_game" target="_blank">获取地址</a>
  </span>
</li>
  • 0. 说明

    这是一个常见搜索结果片段。

    它是一段网页源码,可选择的语法有CSS、XPath、js、正则,推荐CSS、XPath,下面分别解释不同规则写法。

  • 1. 图片

    <img src="/template/m1938/images/huo.gif"></img>

    它是一个地址,需以http或者https开头,这里不符合,要用到字符串拼接。

    CSS写法: http://example.com{{img@src}}

    表示取img标签的src属性值,并且和域名拼接。

    XPath写法: http://example.com{{//img/@src}}

    含义同上,只是改用XPath语法。

    JS写法:

    @js:host + result.match(/img src="([^"]*)/)[1]

    host是APP内部变量,值为当前规则的域名。

  • 2. 名称

    <a href="/?m=vod-detail-id-49829.html" target="_blank" class="name">&nbsp;&nbsp;&nbsp;&nbsp;钢铁侠(高清)<img src="/template/m1938/images/huo.gif"></img></a>

    CSS写法: .name@text

    表示取class为name的节点的text文本。 . 在CSS中表示class名称。

    XPath写法: //*[@class="name"]/text()

    这是XPath写法定式。不解释,直接赋值粘贴和依葫芦画瓢。

    JS写法: 该规则与后面其他规则,js写法不实用,略。

    后面规则不再解释,直接给出写法。

  • 3. 标签

    <span class="btn_span">欧美电影</span>

    CSS写法:.btn_span@text

    XPath写法://*[@class="btn_span"]/text()

  • 4. 章节

    <span class="hours"><font color="red">2020-07-20</font></span>

    CSS写法:更新日期 {{.hours@text}}

    XPath写法:更新日期 {{//*[@class="hours"]/text()}}

  • 5. 结果

    结果一般取下一部分需要用到的地址或者id。

    <a href="/?m=vod-detail-id-49829.html" class="star_game" target="_blank">获取地址</a>

    CSS写法:.star_game@href

    XPath写法://*[@class="star_game"]/@href