我正在为自己创建一个小应用程序,我在其中运行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
答案 0 :(得分:25)
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
使用代码从此处转换为绝对路径:How can I get the absolute URL when extracting links using Nokogiri?
答案 1 :(得分:1)
假设src属性是绝对url,可能类似于:
if item['src'] =~ /([^\/]+)$/
File.open($1, 'wb') {|f| f.write(open(item['src']).read)}
end
答案 2 :(得分:1)
提示:这是一种使用Scrapifier gem从页面头部/身体获取图像的简单方法。很酷的是,您还可以定义要返回的图像类型(jpg,png,gif)。
试一试:https://github.com/tiagopog/scrapifier
希望你喜欢。
答案 3 :(得分:-1)
system %x{ wget #{item['src']} }
编辑:这假设你在使用wget的unix系统上:) 编辑2:更新了从nokogiri获取img src的代码。