2015-12-04 5 views
0

У меня есть URL: http://limg.imgsmail.ru/splash/v/i/icons.v16.14afed9dda24aad97c9dc5bf24396fbd6ede4e22.png и если я пытаюсь получить этот PNG файл с «чистой/HTTP»Как скачать изображение с URL-адреса?

Net::HTTP.start('www.limg.imgsmail.ru') {|http| 
     rest = http.get('/splash/v/i/icons.v16.14afed9dda24aad97c9dc5bf24396fbd6ede4e22.png') 
     open('1.png', 'wb') {|file| file.write(rest.body)} 
    } 

У меня есть ошибка: SocketError: getaddrinfo: Имя или служба не известны. Почему это происходит? Полная ссылка правильная! Как загрузить такие файлы?

+0

Я не могу получить доступ к «www.limg.imgsmail.ru»; возможно, проблема не в вашем рубиновом синтаксисе, а в вашей связи с этим сайтом? –

+0

Я тоже не могу, но вся ссылка «живая». Может быть, есть еще один способ загрузить это изображение? – andgursky

+0

Что это значит? Ссылка «живая», но никто не может ее получить? Большинство людей сказали бы, что это означает, что ссылка мертва. –

ответ

2

Попробуйте это:

require "open-uri" 

File.open('1.png', 'wb') do |fo| 
    fo.write open("http://limg.imgsmail.ru/splash/v/i/icons.v16.14afed9dda24aad97c9dc5bf24396fbd6ede4e22.png").read 
end 

Примечание: Я удалил www с вашего URL, как с этим URL не работает. this url работает нормально.

+1

yeaaah, он работает! Большое спасибо! – andgursky

+0

@andgursky: рад помочь. Вы можете принять и перенести мой ответ –