3

我正在尝试解析任何特定网页上的 img,它工作正常,除了我只想传递宽度值或更高的 img。例如,如果 img 的宽度大于 300 像素,我们应该包含图像的 url,如果不是,我们不应该将它包含在数组中。

    # sort all the images and make absolute url path & check for http

      product_url = "http://example.com/product.htm" 

      Nokogiri::HTML(open(product_url)).xpath("//img/@src").each do |src|
      uri = make_absolute(src,product_url)
      @all_image_urls << uri
    end

我没有运气尝试过这样的事情

    # sort all the images and make absolute url path & check for http

      product_url = "http://example.com/product.htm" 

      Nokogiri::HTML(open(product_url)).xpath("//img[:width > 100]/@src").each do |src|
      uri = make_absolute(src,product_url)
      @all_image_urls << uri
    end

我遇到的问题是对图像大小的实际过滤。由于这甚至可能在 HTML 级别不可用,我们怎么能这样做呢?我们可以这样得到图像的尺寸然后过滤吗?

我目前正在尝试解决这个服务器端,在它遇到视图/演示逻辑之前。

4

1 回答 1

4

试试这个

 doc = Nokogiri::HTML(open(product_url))
 @all_image_urls = doc.css('img').select{|img| img[:src] if img[:width].to_i > 100}
于 2013-09-20T06:27:52.610 回答