プログラムで Web ページのコンテンツをダウンロードし、文字列変数に保持しています。「 og:image」メタ タグのコンテンツ URLを探す最良の方法は何ですか?
たとえば、ページのビュー ソースからのスニペットが次のようになっているとします。
<meta property="og:site_name" content="The Christian Science Monitor" />
<meta property="og:type" content="article" />
<meta property="og:url" content="http://www.csmonitor.com/Business/2013/0729/Cannes-jewel-heist-53-million-in-diamonds-jewels-stolen-from-hotel" />
<meta property="og:description" content="Cannes jewel heist saw $53 million in diamonds and other precious gems stolen from a hotel on the French Riviera. The Cannes jewel heist is the latest in a series of several brazen jewelry thefts in Europe in recent years." />
<meta property="og:image" content="http://www.csmonitor.com/var/ezflow_site/storage/images/media/content/2013/0729-jewels/16474969-1-eng-US/0729-jewels.jpg" />
<meta property="og:title" content="Cannes jewel heist: $53 million in diamonds, jewels stolen from hotel" />
<meta name="sailthru.author" content="Thomas Adamson" />
「 http://www.csmonitor.com/var/ezflow_site/storage/images/media/content/2013/0729-jewels/16474969-1-eng-US/0729-jewels.jpg」という文字列を抽出したいと思います「og:image」タグの対象です。
部分文字列を検索してそこから取得するロジックをコードで作成することもできますが、次のような正規表現構文を使用してこれを実現したいと考えています。
List<Uri> links = new List<Uri>();
string regexImgSrc = @"<img[^>]*?src\s*=\s*[""']?([^'"" >]+?)[ '""][^>]*?>";
MatchCollection matchesImgSrc = Regex.Matches(htmlSource, regexImgSrc, RegexOptions.IgnoreCase | RegexOptions.Singleline);
この最後の例では、Web ページのソースをスクレイピングし、すべてのイメージ タグを抽出します。og:image タグでも同じことをしたいのですが、正規表現に精通していません。