保存网站中的所有图像文件

我正在为自己创建一个小应用程序,我在其中运行Ruby脚本并保存我博客上的所有图像。

在我识别出图像文件后,我无法弄清楚如何保存图像文件。 任何帮助将非常感激。

require 'rubygems' require 'nokogiri' require 'open-uri' url = '[my blog url]' doc = Nokogiri::HTML(open(url)) doc.css("img").each do |item| #something end 

 URL = '[my blog url]' require 'nokogiri' # gem install nokogiri require 'open-uri' # already part of your ruby install Nokogiri::HTML(open(URL)).xpath("//img/@src").each do |src| uri = URI.join( URL, src ).to_s # make absolute uri File.open(File.basename(uri),'wb'){ |f| f.write(open(uri).read) } end 

使用代码从此处转换为绝对路径: 如何在使用Nokogiri提取链接时获取绝对URL?

假设src属性是一个绝对url,可能是这样的:

 if item['src'] =~ /([^\/]+)$/ File.open($1, 'wb') {|f| f.write(open(item['src']).read)} end 

提示:有一种使用Scrapifier gem从页面的头部/身体获取图像的简单方法。 很酷的是,您还可以定义要返回的图像类型(jpg,png,gif)。

试一试: https : //github.com/tiagopog/scrapifier

希望你喜欢。

 system %x{ wget #{item['src']} } 

编辑:这是假设你在一个带有wget的unix系统上:)编辑2:更新了从nokogiri获取img src的代码。