JobAutoの「要素の繰り返し処理」で、繰り返す対象の範囲を広げたり、特定の要素だけに絞り込んだりする方法について説明します。
Webページの一覧や表を繰り返し処理するとき、通常の設定では一部の要素しか対象にならなかったり、逆に処理したくない要素まで繰り返し対象になったりすることがあります。
このような場合は、「取得範囲」「XPathの除外」「XPathのフィルター」「表示値のフィルター」などを使うことで、繰り返しの対象を調整できます。
このページでは、都道府県ごとに分かれた店舗一覧を例に、要素の繰り返し処理を便利に使う方法を紹介します。
「要素の繰り返し処理」アクションの基本的な設定項目については、 JobAutoでWebページの一覧・表を繰り返し処理する方法 を確認してください。
要素の繰り返し範囲を調整する例
以下のように、各都道府県ごとに店舗が分かれているWebページを例にします。
この一覧に表示されている店舗名を、「要素の繰り返し処理」を使って順番に処理します。

まず要素の繰り返し処理を作成する
最初に、通常どおり「要素の繰り返し処理」アクションを作成します。

一部の要素しか繰り返し対象にならない場合
通常の設定では、同じ一覧に見えていても、目的の要素すべてが繰り返し対象にならない場合があります。
この例では、東京の店舗だけが繰り返し対象となり、大阪や愛知の店舗が対象に含まれていません。

このような場合は、「取得範囲」の設定を確認します。
「拡張した範囲の要素」で対象範囲を広げる
繰り返したい要素が通常の範囲だけではすべて取得できない場合は、「取得範囲」を「拡張した範囲の要素」に変更します。
この例では、取得範囲を拡張することで、東京だけでなく大阪や愛知の店舗も繰り返し対象にできます。

基本マニュアルでは、「現在の範囲の要素」は設定した内容の要素を対象とし、「拡張した範囲の要素」はその設定内容に近い要素も対象にする設定として説明しています。
特定の要素を繰り返し対象から除外する
繰り返し対象の中に、処理したくない要素が含まれている場合は、「XPathの除外」を使用します。
XPathの除外に指定した要素は、繰り返しの対象から外すことができます。

取得範囲を広げた結果、不要な要素まで対象になった場合などに利用できます。
XPathのフィルターで対象を絞り込む
特定のXPathに一致する要素だけを繰り返したい場合は、「XPathのフィルター」を使用します。
XPathのフィルターに対象となる要素のXPathを設定すると、その条件に一致する要素だけを繰り返し対象にできます。

表示値のフィルターで対象を絞り込む
Webページ上に表示されている文字を基準に繰り返し対象を絞り込む場合は、「表示値のフィルター」を使用します。
表示値のフィルターに対象とする文字を設定すると、その表示値に一致する要素を繰り返し対象にできます。

XPathを直接編集して対象を絞り込む
「XPathのフィルター」や「表示値のフィルター」だけでなく、繰り返し処理のXPath自体を編集して対象を絞り込むこともできます。
現在の例では、classが「histListData pause」の要素を対象とするようにXPathを設定しています。

XPathを直接編集する場合は、目的の要素だけが繰り返し対象になっていることを、設定画面の対象リストで確認してください。
最後の要素だけを処理する
繰り返し対象の中から、一番最後の要素だけを処理したい場合は、「開始行」に「-1」を設定します。
-1
開始行を「-1」にすることで、繰り返し対象の一番最後の要素だけを処理対象にできます。

設定を変更したら繰り返し対象を確認する
取得範囲、XPathのフィルター、XPathの除外、表示値のフィルターなどを変更した場合は、繰り返し対象の一覧を確認してください。
「要素の繰り返し処理」の設定画面には「再読込」があり、設定変更後に対象となる要素を再取得できます。
想定した要素だけが一覧に表示されていることを確認してから、ロボットを実行します。
繰り返し対象が足りない場合の確認方法
目的の要素が繰り返し対象に含まれていない場合は、まず「取得範囲」を確認してください。
「現在の範囲の要素」で一部しか取得できない場合は、「拡張した範囲の要素」で対象が増えるか確認します。
また、XPathのフィルターや表示値のフィルターを設定している場合は、その条件によって必要な要素が除外されていないか確認してください。
余計な要素まで繰り返し対象になる場合
必要のない要素まで繰り返し対象に含まれる場合は、「XPathの除外」を使って不要な要素を対象から外します。
逆に、対象にしたい要素の条件が明確な場合は、「XPathのフィルター」や「表示値のフィルター」を使って必要な要素だけに絞り込む方法もあります。
どの設定を使えばよいか
| やりたいこと | 確認する設定 |
|---|---|
| 一部の要素しか対象にならない | 取得範囲 → 拡張した範囲の要素 |
| 不要な要素を外したい | XPathの除外 |
| 特定の構造の要素だけにしたい | XPathのフィルター |
| 表示されている文字で絞りたい | 表示値のフィルター |
| より細かく対象を指定したい | XPathを編集 |
| 最後の要素だけ処理したい | 開始行に -1 |
要素の繰り返し設定がうまくいかない場合の確認順序
まず、設定画面に表示されている繰り返し対象の一覧を確認してください。
対象が足りない場合は「取得範囲」を確認し、必要に応じて「拡張した範囲の要素」を使用します。
余計な要素が含まれている場合は、「XPathの除外」「XPathのフィルター」「表示値のフィルター」を確認してください。
XPathを直接編集している場合は、設定したXPathで目的の要素だけが取得されているか確認します。
設定を変更した場合は「再読込」を行い、繰り返し対象の一覧が想定どおりになっていることを確認してください。
開始位置を指定している場合は、「開始行」の設定も確認してください。 最後の要素だけを処理する場合は「-1」を設定します。
「要素の繰り返し処理」アクション自体の各設定項目については、 JobAutoでWebページの一覧・表を繰り返し処理する方法 を確認してください。
ブラウザ操作全般については、 JobAutoのブラウザ操作マニュアル も確認してください。

[…] 要素の繰り返しの便利な使い方 […]