タグ ファインダー
タグ ファインダーは HTML/XML ページ上のタグを検索するために使用されます。タグ ファインダーはステップで使用され、ステップが適用されるタグを検索する方法を定義します。現在のステップのタグ ファインダーのリストはステップ ビューの [ファインダー] タブにあります。スプレッドシートのコンテンツを操作の対象とするステップは、タグ ファインダーではなく、範囲ファインダーを使用します。
タグ パスを理解する
タグ ファインダーを理解するうえでタグ パスの概念は重要です。タグ パスは、タグのページ内での位置についての短いテキスト表現です。以下のタグ バスについて考えます。
このタグ パスは、<html> タグ内の <body> タグ内にある <div> タグ内の <a> タグを表します。
html.body.div.a
タグ パスは、同じページにある複数のタグと照合することができます。たとえば、上記のタグ パスは、このページ上の 3 番目のタグを除くすべての <a> タグと一致します。
<html>
<body>
<div>
<a href="url...">Link 1</a>
<a href="url...">Link 2</a>
</div>
<p>
<a href="url...">Link 3</a>
</p>
<div>
<a href="url...">Link 4</a>
<a href="url...">Link 5</a>
<a href="url...">Link 6</a>
</div>
</body>
</html>
インデックスを使って、そのレベルの同じタイプのタグの中から特定のタグを参照することができます。以下のタグ バスについて考えます。
html.body.div[1].a[0]
このタグ パスは、<html> タグ内の <body> タグにある 2 番目の <div> タグ内の 1 番目の <a> タグを表します。したがって、上記のページでは、このタグ パスは "Link 4" の <a> タグとのみ照合されます。インデックスが 0 から始まることに注意してください。タグ パス上のタグにインデックスが指定されていない場合、上記の最初のタグのパスで見たように、パスはそのレベルの該当するタイプのあらゆるタグと照合されます。インデックスが負の場合、照合されるタグは、インデックス -1 に相当する最後の一致タグから逆方向にカウントされます。以下のタグ バスについて考えます。
html.body.div[-1].a[-2]
このタグ パスは、<html> タグ内の <body> タグにある最後の <div> タグ内の最後から 2 番目の <a> タグを表します。したがって、上記のページでは、このタグ パスは "Link 5" の <a> タグとのみ照合されます。
アスタリスク ('*') を使って、任意のタイプの、任意の順番のタグを表すことができます。たとえば、次のタグ パスがあったとします。
html.*.p|div|td.a
このタグ パスは、<html> タグ内の任意の場所に配置された <p>、<div>、または <td> タグ内の <a> タグを表します。
タグ パスでは、ページ上のテキストはキーワードの "text" を使用して、他のタグと同様に表されます。技術的には、テキストはタグではありませんが、タグ パスでは同様に処理されて表示されます。例として、以下の HTML を考えます。
<html>
<body>
<a href="url...">Link 1</a>
<a href="url...">Link 2</a>
</body>
</html>
タグ パス "html.body.a[1].text" は、テキスト "Link 2" を表します。
タグ ファインダーのプロパティ
以下のプロパティを使用して [タグ ファインダー] を設定できます。
- 検索範囲
-
このプロパティでは、名前付きタグとの関連でタグを検索する場所を指定することができます。デフォルト値は「ページ内の任意の場所」であり、名前付きタグはタグの検索に使われません。
- タグ パス
-
このプロパティでは、前のセクションで説明したタグ パスを指定できます。タグ パスは、値セレクターを使用してさまざまな方法で指定できます。
- 属性名
-
このプロパティでは、たとえば "align" などの特定の属性を持つタグを指定できます。
- 属性値
-
このプロパティでは、特定の値を持つ属性を持つタグを指定できます。[属性名] プロパティが設定されている場合、属性値はその属性名に関連付けられます。
これらの値は大文字と小文字が区別されます。
- 「テキストと等しくする」は、属性値が指定したテキストと完全に一致することを指定します。テキストは属性値の全体と一致する必要があることに注意してください。
- 「テキストを含む」は、属性値に指定されたテキストが含まれることを指定します。
- 「テキストで始まる」は、属性値が指定したテキストで始まることを指定します。
- 「以下のテキストで終了」は、属性値が指定したテキストで終わることを指定します。
- 「次のパターンに一致」は、属性値が指定したパターンと一致することを指定します。パターンは属性値全体と一致する必要があることに注意してください。
- 「テキストと等しくない」は、属性値が指定したテキストと等しくないことを指定します。
- 「テキストを含まない」は、属性値に指定されたテキストが含まれないことを指定します。
- 「テキストで開始しない」は、属性値が指定したテキストで始まらないことを指定します。
- 「テキストで終了しない」は、属性値が指定したテキストで終わらないことを指定します。
- 「パターンと一致しない」は、属性値が指定したパターンと一致しないとを指定します。
- タグ パターン
-
このプロパティでは、(タグ内部のすべてのタグを含む) タグが一致する必要がある「.*.*Stock Quotes.*.*」などのパターンを指定できます。このプロパティはロボットのパフォーマンスに大きな影響を及ぼす可能性があるため、使用する際には注意が必要です。タグ パターンは、1 つの一致するタグを検索するためにページ全体に何度も適用されることがあるためです。これを回避するには、照合対象プロパティに「テキストのみ」を選択する方法があります。
- 照合対象
-
このプロパティでは、「タグ パターン」がテキストまたはタグの HTML 全体と照合することを指定できます。デフォルトでは、パフォーマンスの高速化のため、テキストのみと照合します。
- タグ深度
-
このプロパティは、一致するタグ同士が互いの内部に含まれている場合に、どちらのタグを使用するかを決定します。デフォルト値はすべての一致するタグを受け入れる「範囲内の深度」です。「最も外側のタグ」を選択した場合は、最も外側のタグのみが受け入れられ、同様に、「最も内側のタグ」を選択した場合は、最も内側のタグのみが受け入れられます。
- タグ番号
-
このプロパティは、複数のタグがタグ パスおよび他の条件と一致した場合に、どのタグを使用するかを決定します。使用するタグの数を、一致する最初のタグから順方向、または一致する最後のタグから逆方向のいずれかで数えて指定します。
例
たとえば、タグ パスを "table" に設定し、属性名プロパティを "align"、タグ属性プロパティを "align" に設定して、 属性値プロパティをテキストを "center" にした「固定テキスト」およびタグ パターン プロパティを ".*Business News.*" に設定すると、タグ ファインダーは、<table> タグで中央揃えされ、"Business News" というテキストが含まれる最初のものが検出されます。