【发布时间】:2017-03-17 10:24:08
【问题描述】:
我正在使用以下代码从网页中抓取特定图像。此页面上有多个带有图像标签的图像,那么这段代码如何解释呢?我注意到它只保存带有图像标签的第一张图像。这是真的吗?
我的推理是否正确,该代码开始从上到下读取 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
【问题讨论】:
-
这只是抓取第一个
.image元素并下载src属性。它不关心所有图像。如果是这样,您将使用css方法而不是at。您可能想使用.css('img')。 -
您要查找类
image或所有imgs 的元素吗? -
这个问题不再有意义,因为 example.com 处于离线状态,因此示例代码将失败。请参阅“mcve”。