【问题标题】:How to extract using Xidel all @srcset width strings from an image with @srcset attribute?如何使用 Xidel 从具有@srcset 属性的图像中提取所有@srcset 宽度字符串?
【发布时间】:2019-03-17 15:26:53
【问题描述】:

使用Xidel,我需要在包含一个通用模式的@srcset 属性中提取所有图像尺寸: "(\d+)w"

./xidel "url_with_images" -e '?'

查看此图片示例

<img ... @srcset="https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-696x457.jpg 696w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-220x144.jpg 220w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-300x197.jpg 300w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-768x504.jpg 768w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-475x312.jpg 475w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-741x486.jpg 741w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-640x420.jpg 640w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu.jpg 800w" />

Xidel 预期输出:

696w
220w
300w
768w
475w
741w
650w
800w

【问题讨论】:

    标签: html bash srcset xidel


    【解决方案1】:

    http://www.benibela.de/documentation/internettools/xpath-functions.html#x-extract:

    如果 flags 包含 *,则返回所有匹配项。

    cat <<EOF | xidel -s - -e 'extract(//@srcset,"(\d+w)",1,"*")'
    <img srcset="https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-696x457.jpg 696w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-220x144.jpg 220w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-300x197.jpg 300w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-768x504.jpg 768w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-475x312.jpg 475w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-741x486.jpg 741w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu-640x420.jpg 640w, https://www.jewishpress.com/wp-content/uploads/Billionaire-Arnon-Milchan-and-PM-Benjamin-Netanyahu.jpg 800w" />
    EOF
    
    696w
    220w
    300w
    768w
    475w
    741w
    640w
    800w
    

    -e 'tokenize(//@srcset,",") ! substring-after(.,"jpg ")' 也可以。

    【讨论】:

    • 有网址?如何使用 URL 执行此操作?不使用 EOT
    • 如何从列表中获取最高分辨率?
    • 您没有提供网址,所以我使用您提供的 &lt;img&gt; 元素节点作为原始输入。使用网址就像xidel -s "url" -e 'extract(//@srcset,"(\d+w)",1,"*")' 一样简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    相关资源
    最近更新 更多