我正在使用Ruby on Rails开发一个分享网站,允许分享网页链接。
我想从每个页面中提取一些代表性的图片(就像在Facebook上分享链接时那样)。
目前,我使用opengraph gem首先解析og:image
元标签,然后使用Nokogiri解析页面内容并检索所有<img>
标签的src
属性。这样可以得到良好的结果(除了一些装饰性图片外,所以我通过大小过滤结果...)。
--
现在,我想进一步解析css background-image
属性:网站的徽标经常作为<h1>
或<a>
标签的背景显示。
我考虑以下过程:
使用正则表达式解析HTML文档(类似于
/background(-image)?:.../
)以查找内联CSS使用Nokogiri检索CSS样式表URL,并使用相同的正则表达式解析这些样式表
... 并根据文档URL绝对化URL。
--
我的问题是:
您认为是否有更好的替代方案?
是否有任何一种库可以提高此过程的性能?
例如,如果我可以构建HTML+CSS的合并视图,允许我通过DOM访问CSS属性,我可以仅访问预选HTML元素(h1、a等)的背景图片,并限制结果数量。
meta
标签中使用属性og:image
定义的,如果没有定义,则只使用img
标签。 - noob/background:url(...)/
,而不是嵌套标签。 - Thomas Guillory