2017-05-14 6 views
1

Je suis en train d'obtenir une image de la mangafox du site, l'image est affichée dans les navigateurs, mais je continue à avoir des erreurs petit morceau RubyRuby: ne peut pas ouvrir un lien qui fonctionne dans un navigateur web

Jusqu'à présent, je essayé ceci:

require 'open-uri' 
require 'pp' 

def get_page(link) 
    page = nil 
    begin 
    page = open(link, 'User-Agent' => "Ruby/#{RUBY_VERSION}") 
    rescue Exception => e 
    puts e.class.to_s 
    puts e.message 
    end 
    return page 
end 

link = 'http://h.mfcdn.net/store/manga/9/14-116.0/compressed/Bleach-14-116[manga-rain]._manga_rain_bleach_ch116_01.jpg?token=24530ad3411b28ed7f5ef17f932e8713&ttl=1494853200' 
# tried this after researching on internet because some characters are refused in links (such as '[' or ']') 
link2 = link.gsub(/[\[\]]/) { '%%%s' % $&.ord.to_s(16) }.chomp 

pp get_page(link) 
pp get_page(link2) 

mais je reçois cette sortie:

URI :: InvalidURIError
mauvaise URI (URI est pas?): http://h.mfcdn.net/store/manga/9/14-116.0/compressed/Bleach-14-116[manga-rain]._manga_rain_bleach_ch116_01.jpg?token=24530ad3411b28ed7f5ef17f932e8713&ttl=1494853200
nul
openURI :: HTTPError
403 Interdit
nul

Répondre

2

est bien openURI Utilisation dans un pincement, mais vous seriez mieux servis par une bibliothèque de réseau plus robuste comme Net :: HTTP ou Typhée:

response = Typhoeus.get('http://h.mfcdn.net/store/manga/9/14-116.0/compressed/Bleach-14-116[manga-rain]._manga_rain_bleach_ch116_01.jpg?token=24530ad3411b28ed7f5ef17f932e8713&ttl=1494853200') 
response.body #=> binary image data 

(note: testé avant de partager - il charge très bien)

+0

cela fonctionne parfaitement merci beaucoup. Devra regarder la documentation pour le traitement des erreurs tho –