HtmlAgilityPack(以下 HAP)における「よくあるユースケース」の一つに、「メタタグ・OGP 情報の収集」があります。これは、WebページからSEOやSNS連携に利用されるメタ情報(<meta> タグ)を抽出する処理です。以下に、この用途に関する詳細な解説を示します。
メタタグ・OGP情報の収集とは
Webページ内の <head> セクションには、HTMLのメタ情報が多く含まれており、以下のような用途に使われます:
-
SEO向け:
<meta name="description" content="...">など -
OGP(Open Graph Protocol)向け:
<meta property="og:title" content="...">など -
Twitterカード対応:
<meta name="twitter:card" content="...">など
HAP を用いることで、これらの情報を簡単に抽出・分析できます。
処理の流れ
-
HTMLの読み込み
文字列、ファイル、URLなどから HTML ドキュメントを読み込みます。 -
XPath や LINQ によるメタタグの抽出
<meta>要素を対象に、nameまたはproperty属性、およびcontent属性を取得します。 -
OGP形式(og:〜)、Twitter形式(twitter:〜)の分類
取得した情報を種別ごとに整理します。
コード例(基本的なメタ情報の取得)
よく使われるOGP/Twitterの例
| タイプ | 属性名 | 用途例 |
|---|---|---|
| OGP | og:title |
ページタイトル |
| OGP | og:description |
ページ概要 |
| OGP | og:image |
サムネイル画像URL |
twitter:card |
カードの種類(summary など) | |
twitter:title |
タイトル | |
twitter:description |
概要 |
応用例
-
ニュースサイトやブログ記事のサマリ情報の収集
-
SNS共有時のメタ情報自動抽出
-
SEO監視ツールのクローラバックエンド実装
-
メタ情報の欠損チェックや自動補完処理
注意点
-
<meta>タグは<head>外に記述されていることもあるため、XPathは//metaとして広く探索するのが安全です。 -
属性の存在チェックを確実に行わないと
nullによる例外が発生するため、GetAttributeValue()のデフォルト値指定が推奨されます。
このように、HtmlAgilityPackを用いることで、HTMLドキュメントからSEO・SNS連携に不可欠なメタ情報を自動的に抽出・活用する処理を簡潔に実装できます。特にOGPやTwitterカードなどの規格化された属性構成に着目すれば、再利用性の高い解析ロジックを構築することが可能です。
ChatGPT4o 生成日:2025/06/23