【发布时间】:2012-12-02 23:21:11
【问题描述】:
我目前在我的Product 模型中使用以下代码来读取和保存零售站点的og:images。
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:images 返回 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 解析器也无法判断它是一个链接......),但当直接粘贴到浏览器中时它确实有效。
如何正确阅读这样的链接?
【问题讨论】:
-
“我该怎么做才能正确读取这样的链接?” – 对 URL 中不允许的字符应用正确的 URL 编码......?
标签: ruby-on-rails facebook-opengraph