From c55353e44e45262579333e8b8d25945697720038 Mon Sep 17 00:00:00 2001 From: dong Date: Tue, 21 Jul 2026 12:51:05 +0200 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3ja?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jar/配置逐句“翻译”.txt | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 jar/配置逐句“翻译”.txt diff --git a/jar/配置逐句“翻译”.txt b/jar/配置逐句“翻译”.txt new file mode 100644 index 0000000..22560dd --- /dev/null +++ b/jar/配置逐句“翻译”.txt @@ -0,0 +1,31 @@ + 配置逐句“翻译” +"数组": "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",这样既优雅又不容易出错! \ No newline at end of file