我想使用Ruby下載此圖片。我怎麼做?如何使用Ruby下載圖片?
http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg
我正在使用Mac OS。
我想使用Ruby下載此圖片。我怎麼做?如何使用Ruby下載圖片?
http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg
我正在使用Mac OS。
就像下載其他東西一樣。 Net::HTTP
%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方法。
如果你想下載一個網頁上的所有圖片,您可以使用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()
嘗試使用機械化寶石:
開始: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
爲了使事情更清潔,我建議您在保存圖像時使用文件名。我有一個保存批量圖像的問題,因爲它們的格式不正確。圖像保存這樣的:
#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
操作系統無關緊要。 – waqas 2013-08-03 19:50:06