我需要使用电报模板代码将“数据原始”属性替换为“ 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”将完成模板工作。
参考文献可能会有所帮助:
我已经使用以下代码片段:
# 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