We’ve migrated our documentation to a new site, which means some URLs have changed.
Audience

マークアップを利用したデータ抽出のサンプル

概要

CxenseのクローラはCxense Insightのスクリプトを挿入したWebページの内容を取得します。 取得されたページは即座に解析され、様々な種類のデータに分類されます。通常、文書処理機能はデータ分析を自動的に最適な形で行います。しかし、中には特にニュース記事のフォーマットなどのページの場合には、文書処理に失敗することがあります。 このようなケースではページに補助的なタグを加える事で、文書処理をサポートします。

典型的なデータ処理の失敗する例は以下の通りです。

  • そのデータがありません。 – たとえば記事の著者名がページ内のどこにもありません。

  • データは別のタグに紐づいています。 – <title>タグにタイトルが保持されていませんが、記事には「トップニュース」の見出しがあります。

  • データが正しく紐づけられていません。 – <og-image>タグはレコメンドに適さない画像へのリンクを含む場合があります。 

  • データに間違った形式もしくは通常利用されない形式があります。 – 例)イタリア式の日付形式: 12 gennaio 2016

  • Webページに複数のURLがあります。 - 同じWebページにhttp://server.com/page.html と http://server.com/news/article.html としてアクセスできます

  • データは文書処理出来ないHTML構造でカプセル化されています。 – ニュース記事以外の素材が、ニュース記事の一部として文書処理が取り込む為にページに含まれています。

上記の代表的な5つの問題は、正しい値を指定するheadセクション(metaタグまたはcanonical linkタグ)にタグを追加することで修正できますが、最後の例はbodyセクションのコンテンツタグで修正できます。
以下にリストされているほとんどのタグに関する詳細情報は、Document parsingCxense Content<メタデータを利用したレコメンデーションの改善>でご覧いただけます。

Meta、Canonical URL タグ

同じ種類のデータを処理するためのmetaタグが複数検出された場合 (例:cXenseParse:title, og:title, title)、 以下の優先順で取得するデータを決定します。また、前のセクションでリストされたタグは後のセクションでリストされているタグよりも優先されます。

Cxense Metaタグ

Cxense metaタグは同じ情報を保持する他のmetaタグより優先されます。Cxenseタグは一般的に利用されるもの (cXenseParse:title 等) の他にCxenseのシステムで利用する為に特化したものがあります。
(Cxense Contentで利用されるタグ: cXenseParse:recs:image 等).

  • cXenseParse:title

  • cXenseParse:author

  • cXenseParse:description

  • cXenseParse:keywords

  • cXenseParse:pageclass

  • cXenseParse:recs:image

  • cXenseParse:recs:publishtime

  • cXenseParse:recs:articleid

  • cXenseParse:recs:recommendable

  • cXenseParse:recs:recommending

  • cXenseParse:recs:category

  • cXenseParse:recs:expirationtime

Facebook Open Graph Meta データ(OGP)

Facebookは、Facebookプラットフォームでデータを投稿または取得するアプリケーション用のAPIを提供しています。このAPIの一部は、ディベロッパーが記事のタイトル、イメージ等をFacebookに指示するOpen Graphプロトコルです。Cxenseクローラは、対応するCxense Metaタグが存在しない場合には次のOpen Graph metaデータから取得します。

  • og:title

  • og:description

  • og:keywords

  • og:image

  • og:article:published_time

  • og:article:author, og:book:author

標準の HTML Headers および その他のタグ

これらは上記のタグが見当たらない、取得できない場合に利用される最終ラインのタグです(例外は本文<body>内に記述可能な title 及び  date です。下記の例をご参照ください)。

  • title

  • description

  • keywords

  • date, dc.date, dc.date.created, dc.terms.issued, pub_date, article.published

  • author, dc.creator, article.author

Canonical Url タグ

同じWebページに複数のURLでアクセスできる場合は、正規化URLタグ(link canonical)を追加する必要があります。正規化URLタグが無い場合にはページはInsightに別々のドキュメントとして登録され、それぞれPVイベントが発生します。

Date/Time フォーマット

メタタグで使用されるデータフォーマットは ISO 8601 4.3.2 (a) 拡張書式の異字体にしたがっています。

2012-03-01T13:00:00Z

  • コンポーネントはこの順にリストされています。 

    • year, month, day of the month, time designator, hour, minute, second, zone designator

  • time designator は大文字のT

  • zone designator は大文字のZ (UTC/グリニッジ時間) または +/- 時間差 '+04', '06:00', '-08:30', 等

  • コンポーネントは日付コンポーネントT時間コンポーネントで zone の前に +/- (もしなければZ)

    • YYYY-MM-DDThh:mm:ss±hh:mm

    • YYYY-MM-DDThh:mm:ssZ

  • 機能依存のため推奨されていませんが、記号は切り捨てられます

    • YYYY-MM-DDThh:mm:ssZ

    • YYYY-MM-DD

  • 全てのコンポーネントは先頭に 0 を追加することで最大文字数を使わなければなりません。
    (したがって、8月の月は8ではなく08、午後1時の1は01)

    • 2016-08-21T01:00:00Z

  • 24時間表記は使用可能です(したがった PM 9:00 を 21:00)

    • 2016-08-21T21:00:00Z

全Metaタグを挿入した際のトップダウン

以下に、種類別優先度順のMetaタグ/データ抽出を行うhtmlページの例を示します。

<html>
  <head>
 	<!-- 正規化URLタグ -->
 	<link rel="canonical" href="http://www.domain.com/some/dir/somePage.html" />

    <!-- (Cxense Insightタグなど。) -->
 
    <!-- ページ種別(pageclass) -->
    <meta name="cXenseParse:pageclass" content="article"/> <!-- contentに"frontpage"を使う事もできます。(どちらか一つ) -->
 
    <!-- ページのタイトル(title) -->
    <meta name="cXenseParse:title" content="ドキュメントのタイトルを記載します。"/> <!-- 優先度 1 -->
    <meta property="og:title" content="ドキュメントのタイトルを記載します。"/> <!-- 優先度 2 -->
    <title>ドキュメントのタイトルを記載します。</title> <!-- 優先度 3 -->
 
    <!-- 著者(Author) -->
    <meta name="cXenseParse:author" content="山田 太郎"/> <!-- 優先度 1 -->
    <meta property="og:article:author" content="山田 太郎"/> <!-- 優先度 2 -->
    <meta property="og:book:author" content="山田 太郎"/> <!-- 優先度 3 -->
    <meta name="author" content="山田 太郎"/> <!-- 優先度 4 -->
    <meta name="dc.creator" content="山田 太郎"/> <!-- 優先度 5 -->
    <meta name="article.author" content="山田 太郎"/> <!-- 優先度 6 -->
 
    <!-- ページ説明(Description) -->
    <meta name="cXenseParse:description" content="ドキュメントの説明を記述します。"/> <!-- 優先度 1 --> 
    <meta property="og:description" content="ドキュメントの説明を記述します。"/> <!-- 優先度 2 -->
    <meta name="description" content="ドキュメントの説明を記述します。"/> <!-- 優先度 3 -->
 
    <!-- キーワード(Keywords) --> 
    <meta name="cXenseParse:keywords" content="ドキュメントのキーワードを記載します。複数の場合にはテニス,プレスリリース,ラケットのようにカンマ区切りで。"/> <!-- 優先度 1 --> 
    <meta property="og:keywords" content="ドキュメントのキーワードを記載します。複数の場合にはテニス,プレスリリース,ラケットのようにカンマ区切りで。"/> <!-- 優先度 2 -->
    <meta name="keywords" content="ドキュメントのキーワードを記載します。複数の場合にはテニス,プレスリリース,ラケットのようにカンマ区切りで。"/> <!-- 優先度 3 -->
 
 
    <!-- CXENSE CONTENTで レコメンドウィジェットに関連したタグ -->

 
    <!-- 公開日時(Publication Date) -->
    <meta name="cXenseParse:recs:publishtime" content="2012-03-01T13:00:00Z"/> <!-- 優先度 1 -->
    <meta property="article:published_time" content="2012-03-01T13:00:00Z"/> <!-- 優先度 2 -->
    <meta name="date" content="2012-03-01T13:00:00Z"/> <!-- 優先度 3 -->
    <meta name="dc.date" content="2012-03-01T13:00:00Z"/> <!-- 優先度 4 -->
    <meta name="dc.date.created" content="2012-03-01T13:00:00Z"/> <!-- 優先度 5 -->
    <meta name="dc.terms.issued" content="2012-03-01T13:00:00Z"/> <!-- 優先度 6 -->
    <meta name="pub_date" content="2012-03-01T13:00:00Z"/> <!-- 優先度 7 -->
    <meta name="article.published" content="2012-03-01T13:00:00Z"/> <!-- 優先度 8 -->
  
    <!-- 記事ID(Article id) -->
    <meta name="cXenseParse:recs:articleid" content="24757772"/>
 

    <!-- イメージ画像(Image) -->
    <!-- 画像について cXenseParse を用いた代替手段はありません -->
    <meta property="og:image" content="http://something/really/cool.jpg"/> <!-- 優先度 1 -->
  </head>
 
  <body>
    <h1>This could be the document's title</h1> <!-- Title, 優先度 4 (ページ内の一番最初のh1タグのみ適用) -->
    <p>Mar 03, 2012, 8:34 PM ET </p> <!-- Date, 優先度 9 -->
    <h1>This is not the document's title</h1> <!-- タイトルとして考慮されません。 -->
    <p>Some more text goes here</p>
  </body>
</html>

コンテンツタグ

HTMLページは通常、意味のある内容(記事本文)と、フッター、サイドバー、メニュー等必要無いテキストが混在しています。 Cxense Crawlerは特にニュース記事などページ内の関連コンテンツを抽出処理する機能に優れています。 ただし、クローラが抽出するコンテンツを指定する為に補助的な役割を持つタグがあります。

コンテンツタグ例

関連コンテンツには、html div属性cXenseParseまたはHTMLのコメントにcxenseparse_start / cxenseparse_endをペアで使用して抽出箇所を明示できます。

<p>This is not relevant and will be ignored.</p>
<div class="cXenseParse"><p>This is relevant and will not be ignored.</p></div>
<p>This is <div class="cXenseParse" style="display:inline">inlined and relevant</div>, but this is not.</p>
<!-- cxenseparse_start -->
<p>This is relevant and will not be ignored.</p>
<!-- cxenseparse_end -->

カスタムマークアップ

これまでに説明したマークアップに関しては、クローラが抽出したいデータを抽出出来ない場合、修正や補う事を解説してきました。このセクションでは、クローラがデフォルトで抽出したデータ以外のデータを追加する為のマークアップについて説明します。下記は架空のフルーツを取り扱うWebサイトで、一つor複数のフルーツをページコンテンツに紐づけたい時のマークアップの例です。

<meta name="cXenseParse:xyz-fruit" content="orange"/>
<meta name="cXenseParse:xyz-fruit" content="apple"/>

「cXenseParse:xyz-」の「xyz」はお客様固有のカスタマプリフィックスです。 このメタタグを持つドキュメントは、コンテンツプロファイルのキー、xyz-fruitで取り扱うことができます。 このマークアップで付与した情報はCxense Insight GUIに表示出来、それに基づいてトラフィック検索のクエリを作成することができます。

更新されたページの再クロール

上記で記述された変更が意図した効果をもたらすには、
まずページを再クロールして、再処理しなければなりません。
再クロールに際しては以下の4つの方法があります。

  • 何もしない - 何もせずにページが再クロールされるのを待ちます。

  • 単一ページを再クロールする - 更新されたばかりの単一ページを再クロールする方法は以下の通りです。開発時の変更をテストするには良い方法です。

  • スクリプトを書く - Cxense API スクリプト/profile/content/push を使います。

  • 再クロールのメタタグを追加する - 前回のクロール時間よりも新しい時刻の modified time メタタグがあるページでは次のユーザーがページに訪問後すぐに再クロールされます。

    <meta property="article:modified_time" content="2016-12-16T14:18:00-05:00">
    
image-20220114-075826.png


Last updated: