使用Nokogiri保存图像

时间:2016-11-03 17:53:32

标签: css ruby image nokogiri

我正在使用以下代码来从网页上抓取特定图像。此页面上有多个带有图像标记的图像,那么此代码如何解释?我注意到它只保存带有图像标签的第一个图像。一般来说这是真的吗?

我是否正确推理此代码从上到下开始读取css,一旦找到带有图像标记的第一个图像,它就会保存它并停止进一步查看?因为我需要这样做。

PAGE = "http://example.com/page.html"
require 'nokogiri'
require 'open-uri'
html = Nokogiri.HTML(open(PAGE))
src  = html.at('.image')['src']
File.open("foo.png", "wb") do |f|
    f.write(open(src).read)
end

1 个答案:

答案 0 :(得分:0)

是,

  • html.at仅找到第一个匹配元素
  • html.search找到所有匹配的元素

这会回答你的问题吗?

在相关的说明中,

  • html.at(".image")找到class="image"的任何元素,即使它是<div>代码
  • html.at("img.image")找到带有<img>
  • 的第一个class="image"元素
  • html.at("img")找到第一个<img>元素