我正在使用以下代码来从网页上抓取特定图像。此页面上有多个带有图像标记的图像,那么此代码如何解释?我注意到它只保存带有图像标签的第一个图像。一般来说这是真的吗?
我是否正确推理此代码从上到下开始读取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
答案 0 :(得分:0)
是,
html.at
仅找到第一个匹配元素html.search
找到所有匹配的元素这会回答你的问题吗?
在相关的说明中,
html.at(".image")
找到class="image"
的任何元素,即使它是<div>
代码html.at("img.image")
找到带有<img>
class="image"
元素
html.at("img")
找到第一个<img>
元素