Ruby on Rails でWeb ページのリンクを共有できる共有サイトを構築しています。
各ページの代表的な画像をいくつか抽出したいと思います (リンクを共有するときのFacebookのように)。
今のところ、最初にgem opengraphog:image
を使用してメタ タグを解析し、次にNokogiriを使用してページ コンテンツを解析し、すべての<img>
タグsrc
属性を取得します。これにより、良い結果が得られます(一部の装飾画像を除くため、サイズで結果をフィルタリングします...)。
--
次に、さらに進んで css プロパティを解析したいと思います。Webbackground-image
サイトのロゴは、<h1>
または<a>
タグの背景として表示されることがよくあります。
次のプロセスを考えています。
HTMLドキュメントを正規表現(のようなもの
/background(-image)?:.../
)で解析して、インラインCSSを見つけますNokogiri で CSS スタイルシートの URL を取得し、これらのシートを同じ正規表現で解析する
...そして、ドキュメントの URL に従って URL を絶対化します。
--
私の質問は次のとおりです。
より良い代替手段があると思いますか?
プロセスのパフォーマンスを向上させるライブラリはありますか?
たとえば、DOM を介して CSS プロパティにアクセスできる HTML+CSS の統合ビューを構築できれば、事前に選択された HTML 要素 (h1、a、...) の背景画像のみにアクセスでき、結果の数を制限します。