How do I download a picture using Ruby?

2019-01-10 19:08发布

I want to download this picture using Ruby. How do I do that?

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

I am using Mac OS.

标签: ruby http
8条回答
劳资没心,怎么记你
2楼-- · 2019-01-10 19:37

Try using the Mechanize gem:

Start with: sudo gem install mechanize to install Mechanize.

Then:

require 'rubygems'
require 'mechanize'

agent = Mechanize.new
link = 'http://www.asite.com/pic.jpg'
agent.get(link).save "images/pic.jpg" 

EDIT: To make things cleaner I would suggest you use the File's name itself when you save the image. I had an issue saving bulk images because they were not formated correctly. The images were saved like this:

#pic.jpg(1)
#pic.jpg(2)
#etc.

Thats why you should probably use the image name as the file name like this:

agent.get(src).save "images/#{File.basename(url)}"

File.basename takes the image url and just returns the the actual image name:

File.basename("http://www.asite.com/pic.jpg")
# returns the image name
pic.jpg
查看更多
兄弟一词,经得起流年.
3楼-- · 2019-01-10 19:37

The same way you download anything else. Net::HTTP

查看更多
Deceive 欺骗
4楼-- · 2019-01-10 19:40

If you want to download all the images on one page, you can use the image_downloader gem:

require 'rubygems'
require 'image_downloader'

downloader = ImageDownloader::Process.new('www.test.com','img_dir/')

downloader.parse(:any_looks_like_image => true)

downloader.download()
查看更多
成全新的幸福
5楼-- · 2019-01-10 19:40
%x(wget http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg)

or

`wget http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg`
查看更多
倾城 Initia
6楼-- · 2019-01-10 19:45

The easiest way would be to require open-uri and use that with the previous answer or use the also supplied Net::HTTP module with its get method.

查看更多
Animai°情兽
7楼-- · 2019-01-10 19:52

There is a gem called down which is simple to use.

Firstly, install this gem by gem install down.

Then:

require "down"
file = Down.download("http://farm1.static.flickr.com/92/218926700_ecedc5fef7_o.jpg")

You can read more on this gem in its github repo https://github.com/janko-m/down.

查看更多
登录 后发表回答