我想下载使用Ruby这张图片。 我怎么做?
http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg
我使用的Mac OS。
我想下载使用Ruby这张图片。 我怎么做?
http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg
我使用的Mac OS。
require "open-uri"
open("your-url") {|f|
File.open("whatever_file.jpg","wb") do |file|
file.puts f.read
end
}
尝试使用机械化的宝石:
首先: sudo gem install mechanize
,以机械化安装。
然后:
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
link = 'http://www.asite.com/pic.jpg'
agent.get(link).save "images/pic.jpg"
编辑:为了使事情变得更清洁,我建议当你保存图像使用文件的名称本身。 我有批量保存图像,因为它们是格式不正确的问题。 图像保存这样的:
#pic.jpg(1)
#pic.jpg(2)
#etc.
这就是为什么你应该使用映像名称类似这样的文件名:
agent.get(src).save "images/#{File.basename(url)}"
File.basename采用图片的网址,只是返回的实际图像名称:
File.basename("http://www.asite.com/pic.jpg")
# returns the image name
pic.jpg
如果你想下载一个网页上的所有图片,您可以使用image_downloader宝石:
require 'rubygems'
require 'image_downloader'
downloader = ImageDownloader::Process.new('www.test.com','img_dir/')
downloader.parse(:any_looks_like_image => true)
downloader.download()
%x(wget http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg)
要么
`wget http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg`
最简单的方法是要求open-uri
,使用与以前的答案,或使用还提供的Net :: HTTP模块,其get方法。
为了使事情变得更清洁,我建议当你保存图像使用文件的名称本身。 我有批量保存图像,因为它们是格式不正确的问题。 图像保存这样的:
#pic.jpg(1)
#pic.jpg(2)
#etc.
这就是为什么你应该使用映像名称类似这样的文件名:
src = 'http://www.asite.com/pic.jpg'
agent.get(src).save "#{folder}/#{File.basename(src)}"
File.basename采用图片的网址,只是返回的实际图像名称:
File.basename("http://www.asite.com/pic.jpg")
# returns the image name
pic.jpg
有一个叫宝石down
这是简单易用。
首先,安装这种宝石的gem install down
。
然后:
require "down"
file = Down.download("http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg")
你可以阅读它的github回购更多的这种宝石https://github.com/janko-m/down 。
用同样的方法,你下载任何东西。 网:: HTTP