現在、モデルで次のコードを使用して、小売サイトの Product
を読み取って保存しています。og:image
def photo_from_url(url)
if !Nokogiri::HTML(open(url)).css("meta[property='og:image']").blank?
photo_url = Nokogiri::HTML(open(url)).css("meta[property='og:image']").first.attributes["content"]
self.photo = URI.parse(photo_url)
self.save
end
end
og:image
これはほとんどのページで機能しますが、返されるがいくつかあります。このbad URI(is not URI?)
ようなリンクの例は、H&M の小売サイトでの次のリンク形式です。
http://lp.hm.com/hmprod?set=source[/model/2012/K71 05701 95313 06 0043 0.jpg],rotate[],width[],height[],x[],y[],type[STILL_LIFE_FRONT]&call=url[file:/product/facebook]
明らかに、これはきれいなリンクではありません (StackOverflow の Markdown パーサーでさえ、それがリンクであるとは判断できません...) が、ブラウザーに直接貼り付けると実際に機能します。
このようなリンクを正しく読むにはどうすればよいですか?