将“原始数据”属性替换为电报即时视图中的src

问题描述 投票:0回答:1

我需要使用电报模板代码将“数据原始”属性替换为“ src”。

我正在使用电报即时视图模板运行时出错。

Image source not found: src attribute expected in <img data-plugin-lazyload="" data-plugin-options="{'effect' : 'fadeIn'}" data-original="https://site.com.br/thumbs/chamadas/xbox.jpg" alt="PS5 e Xbox Series X podem atrasar por causa do Coronavírus, estima analista" title="PS5 e Xbox Series X podem atrasar por causa do Coronavírus, estima analista"/>

原始站点由于延迟加载脚本,因此在所有图像中都使用属性“ data-original”代替“ src”属性。我正在尝试从标记中提取数据原始数据,并用数据原始值替换为src属性。

我想我可以使用以下方法获得img节点:

//section[has-class("section")]//img

并且如果使用,我可以得到数据原始节点:

//section[has-class("section")]//img/@data-original

调试结果:

-------
Debug 6 nodes:
  [0]:  data-original="https://site.com.br/thumbs/chamadas/xbox.jpg"
  [1]:  data-original="https://site.com.br/uploads/2020/03/15/63185/consoles-next-gen-aberta.jpg"
  [2]:  data-original="https://site.com.br/thumbs/chamadas/B550chamada.jpg"
  [3]:  data-original="https://site.com.br/thumbs/chamadas/nvidia-rtx-ampere-chamada.jpg"
  [4]:  data-original="https://site.com.br/thumbs/chamadas/amd-zen-3-zen-4-roadmap-0.jpg"
  [5]:  data-original="https://site.com.br/thumbs/chamadas/xbox-srs-x-chamada1.jpg"

我尝试了很多没有成功的组合,例如:

@replace("data-original", "src"): $body//img/@data-original

最接近的尝试是:

@replace("data-original", "src"): //section[has-class("section")][.//img]

但是在最后一个代码中,它删除了所有的img标签,并且所有文本都只放在一行<p>中,因此所有文章只有一个段落行包含所有内容,没有图像。

理论上“简单”(不简单)将“ data-original”属性替换为“ src”将完成模板工作。

参考文献可能会有所帮助:

#1 Instant View Reference

#2 Instant View Reference

#3 Instant View Docs

#4 Medium Instant View Template

xpath telegram xpath-2.0 instant-view
1个回答
1
投票

我已经使用以下代码片段:

# first of all, site use an attribute object to renderize lazy loaded images. Let convert them to img src attrbute so we cna ride of src not set error
<abc>: //div[has-class("news__text")]//img # Find all images in content div class and convert it to <abc>

@set_attr(src, ./@data-original) # Set src attribute from data-original

$imagetag # var to current <abc>

<img>: //div[has-class("news__text")]//abc # Find abc and convert it to <img> again with seted src
© www.soinside.com 2019 - 2024. All rights reserved.