LoginSignup
3
1

More than 3 years have passed since last update.

Automation AnywhereのBefore-Afterを使用したWebページのデータ抽出

Last updated at Posted at 2019-06-06

勉強がてらやってみたので備忘録として残しておこうと思います。

例えば、対象のWebページに以下のようなテーブルがあるとします。

名前 年齢 性別
田中 20
鈴木 22
高橋 24

Automation AnywhereのBefore-Afterコマンドでは
抽出対象の文字列から、Beforeに設定された文字列とAfterに設定された文字列を探し
その間にある文字列を取得することができます。

・Before-Afterコマンドの設定画面

image.png

  • Source String
    • 抽出したい文字列(今回であればテーブルのソースコード)
  • Before
    • 抽出条件の開始文字
  • After
    • 抽出条件の終了文字
  • Assign The Output To Varidate
    • 抽出した結果を代入する変数

抽出したいテーブルのソースが以下のようになっているとした場合。

<tr class="rankingTabledata">
<td class="txtcenter">田中</td>
<td class="txtleft">20</td>
<td class="txtleft"></td>
</tr>
<tr class="rankingTabledata">
<td class="txtcenter">鈴木</td>
<td class="txtleft">22</td>
<td class="txtleft"></td>
</tr>
<tr class="rankingTabledata">
<td class="txtcenter">高橋</td>
<td class="txtleft">24</td>
<td class="txtleft"></td>
</tr>

名前
Before
<td class="txtcenter">
After
</td">

年齢
Before
<td class="txtleft>
After
</td">

性別
Before
<td class="txtleft>
After
</td">

と設定することで抽出できます。

  • Occurrence
    • ここで指定した回数分抽出条件文字が見つかった個所から文字列抽出を行うための設定値になります。

例えば、名前を抽出する際
Occurrenceを1に設定していると「田中」が
Occurrenceを2に設定していると「鈴木」が抽出されます。

さて、ここで一つ問題があります。
年齢と性別のクラス名が同じためこのままでは、うまく思った通りの値をとることができません。

そこで、Occurrenceをうまく使います。
年齢抽出時には、1を。
性別抽出時には、2を。
こうすることで、1回目にマッチした個所と2回目にマッチした箇所からそれぞれ取ってくることができます。

Occurrenceにループカウンタを使うことで続けてのデータ取得も可能です。
ただし今回のケースだと年齢と性別のカウンタは別々に管理しないといけない点に注意です。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1