gpt4 book ai didi

ruby-on-rails - Nokogiri如何获取img src

转载 作者:行者123 更新时间:2023-12-05 02:19:17 24 4
gpt4 key购买 nike

我一直试图在此循环中获取图像的“src”属性,但无法弄清楚为什么它没有返回任何内容:

require 'nokogiri'
require 'open-uri'

url = "https://marketplace.asos.com/boutiques/independent-label"

doc = Nokogiri::HTML(open(url))

label = doc.css('#boutiqueList')
label.css('#boutiqueList img').attr('src').each do |l|
p l
end

这是 HTML:

    <ul class="itemList boutiques" id="boutiqueList">

<li class="">


<div class="item landscapemedium" rel="sisterhood">
<div class="image">
<a href="/boutique/sisterhood" class="view-collection">
<img alt="" src="https://marketplace-images.asos.com/2016/12/23/0d664728-f484-447d-b927-679f55f24c1a_medium.jpg" class="">

最佳答案

检查每个元素中的 src 属性,这样:

label.css('#boutiqueList img').each { |l| p l.attr('src') }
"https://marketplace-images.asos.com/2016/12/23/0d664728-f484-447d-b927-679f55f24c1a_medium.jpg"
"https://marketplace-images.asos.com/2017/02/03/f6322297-4400-4f18-b76e-66eedfc3f620_medium.jpg"
"https://marketplace-images.asos.com/2016/10/12/2d556841-7c0c-436a-a6fd-37b333c04cfe_medium.jpg"
...
=> 0

因为你想要做的是得到一个数组,其中包含与 '#boutiqueList img' 匹配的所有 src 属性,然后你可以使用 map 而不是 each:

label.css('#boutiqueList img').map { |l| p l.attr('src') }
=> ["https://marketplace-images.asos.com/2016/12/23/0d664728-f484-447d-b927-679f55f24c1a_medium.jpg", ...]

关于ruby-on-rails - Nokogiri如何获取img src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43188828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com