配置逐句“翻译”
"数组": "p:div[role=main] a"
作用:定位文章区块。
翻译:使用 CSS 选择器(p:),在网页里找到 role 属性为 main 的 div 标签,把它里面所有的 标签找出来。这些 标签包裹着每一部影片/文章的信息。
"标题": "p:.post-card-title->text"
作用:提取标题。
翻译:在刚才找到的区块里,寻找 class 为 post-card-title 的标签,提取它里面的纯文本(->text)。
只有加上点号写成 p:.post-card-title,程序才会去网页里寻找 class="post-card-title" 的标签
如果你想通过 itemprop 属性来找,教程里写过,你需要用中括号 [] 来匹配属性。所以正确的写法应该是 p:*[itemprop=headline]->text。
"副标题": "p:*[itemprop*=datePublished]->text[替换:•>>]"
作用:提取发布时间并清洗杂质。
翻译:在区块里,找任意一个 itemprop 属性里包含 datePublished 的标签(* 代表任意标签),提取它的文本。提取出来后,如果里面有个小圆点 •,就把它删掉([替换:•>>],因为 >> 后面是空的,代表删除)。
"链接": "p:a->href"
作用:提取详情页网址。
翻译:在区块里,找到 标签,提取它的 href 属性值。
"简介": "p:.post-content->text"
作用:提取简介。
翻译:在区块里,找到 class 为 post-content 的标签,提取里面的文本作为简介。
"播放链接": "{"url":"&&\"[包含:http]"
作用:从 JSON 数据中硬切出视频链接。
翻译:这行代码的意思是,在源码里寻找 {"url":" 这个字符串(" 是双引号的转义符),找到后开始截取,直到遇到下一个 "(\")停止。最后用 [包含:http] 过滤一下,确保截取到的是真实的网络链接。
💡 进阶对比:硬切 vs JSON解析
你之前发过这段 JSON 数据:{"url":"https://xxx.com/video.m3u8..."}
用现在的硬切写法:"{"url":"&&\"[包含:http]"
原理:把 JSON 当成普通文本,靠找字符来截取。
缺点:代码又长又乱,而且如果网页稍微改一下格式(比如多了一个空格),这段代码就失效了。
用 j: 的写法:"j:url"
原理:程序自动识别 JSON 格式,直接提取 url 字段的值。
优点:极其稳定,代码极简。
总结:你发的这段配置完全正确且能跑通。但在实际写规则时,如果确认目标数据是标准的 JSON 格式,强烈建议把最后一行替换成 "j:url",这样既优雅又不容易出错!