如何使用Ruby下载的图片?如何使用Ruby下载的图片?(How do I download a p

2019-05-14 12:28发布

我想下载使用Ruby这张图片。 我怎么做?

http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg

我使用的Mac OS。

Answer 1:


require "open-uri"

open("your-url") {|f|
   File.open("whatever_file.jpg","wb") do |file|
     file.puts f.read
   end
}




Answer 2:

尝试使用机械化的宝石:

首先: 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


Answer 3:

如果你想下载一个网页上的所有图片,您可以使用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()


Answer 4:

%x(wget http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg)

要么

`wget http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg`


Answer 5:

最简单的方法是要求open-uri ,使用与以前的答案,或使用还提供的Net :: HTTP模块,其get方法。



Answer 6:

为了使事情变得更清洁,我建议当你保存图像使用文件的名称本身。 我有批量保存图像,因为它们是格式不正确的问题。 图像保存这样的:

#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


Answer 7:

有一个叫宝石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 。



Answer 8:

用同样的方法,你下载任何东西。 网:: HTTP



文章来源: How do I download a picture using Ruby?
标签: ruby http