20 ファインダー(天気1)

ブログ冒頭の「Kofax RPAのロボット作りに特別なスキルは必要ありません」という言葉、嘘ではないんです。簡単なロボットを作るだけなら。

でも、複雑なウェブページを扱うときには、HTMLの知識がちょっぴり必要になってきます。

次のHTMLを見て、タグは「div」、タグ属性は「class」ということがわかるでしょうか?

<div class="xxx">こんにちは</div> 

 ※タグとタグ属性については >>>>> こちら 【4-5】で出てきます。


このタグやタグ属性を使って、ロボットはアクションの対象がウェブページのどこにあるかを特定します。

下図は、Yahoo!の検索条件を入力するステップですが、ソース・ビューのHTMLとステップ・ビューの[ファインダー]を見比べてみてください。


《HTML》

<input name="p" id="srchtxt" type="text" autpcomplete="off">
タグ   : id
タグ属性 : srchtxt

《ファインダー》

属性名 : id
属性値 : srchtxt

HTMLのタグとタグ属性、ファインダーの属性名と属性値が、同じ値になっていることがわかりますか?

このファインダーのおかげで、ロボットは検索条件を入力するテキストボックスが、ウェブページのどこにあるか特定することができます。

そして、ファインダーは、ブラウザ・ビューからステップを追加すると自動的に設定され、ほとんどの場合はそのままで問題ありません。

ところが稀に、ファインダーが原因でロボットが正常に動かないことがあります。そんなときは、ソース・ビューを確認しながら、ファインダーを適切に変更しなければなりません。

ということで、ここでスキルアップできそうなお題を出してみようと思います!ちょっと工夫が必要で難しいですが、まずは答えを見ずにやってみてくださいね。

※けっこうなボリュームなので、答え合わせは2~3回にわけます。


【お題】

気象庁のホームページから、設定ファイルに入力されている地点の、過去5年間の現在日付と同じ月日の天気情報を取得してExcelファイルに出力する。


《気象庁のホームページ》

ホーム > 各種データ・資料 > 過去の気象データ検索 > 都府県・地方の選択

   http://www.data.jma.go.jp/obd/stats/etrn/select/prefecture00.php?prec_no=&block_no=&year=&month=&day=&view=


設定ファイルの内容》

次のテキストをコピーしてメモ帳などのテキストエディタに貼り付け、「weatherpoint2.csv」というファイル名で任意の場所に保存してください。

地点名1,地点名2
神奈川県,横浜
東京都,東京
千葉県,銚子

《出力する項目》

年、地点名1、地点名2、降水量(mm)、最高気温(℃)、最低気温(℃)、平均風速(m/s)、日照時間(h)


《出力ファイル》

過去の天気_yyyyMMdd.xlsx  ※日付は現在日付


《ページ遷移イメージ》


《出力ファイルイメージ》


—————————— お題はここまでです ——————————


↓ 以下は答え

↓ 以下は答え

↓ 以下は答え

↓ 以下は答え(しつこい)


【答え】

答えはひとつではないので、出力結果が同じであればOKです。なんなら、この答えよりもスマートなやり方があるかもなので、いろんな方法を試してみてくださいね!


【1】ロボットを新規作成して変数を追加する

(1)新規プロジェクト、もしくは既存のプロジェクトに[過去天気情報.type]を作成し、変数を追加します。


《追加する変数の名前と種類》

名前種類
日付日付(Date)
地点名1ショートテキスト(Short Text)
地点名2ショートテキスト(Short Text)
降水量ショートテキスト(Short Text)
最高気温ショートテキスト(Short Text)
最低気温ショートテキスト(Short Text)
平均風速ショートテキスト(Short Text)
日照時間ショートテキスト(Short Text)


(2)次に、ロボット[過去の天気出力ロボ.robot]を作成して、タイプ[過去天気情報]を追加します。


【2】設定ファイル地点名1のページを開く

(1)設定ファイル(weatherpoint2.csv)を読み込み、気象庁のホームページを開きます。

 ※csvファイルの読み込みは >>>>> こちら


《気象庁のホームページ》

ホーム > 各種データ・資料 > 過去の気象データ検索 > 都府県・地方の選択

   http://www.data.jma.go.jp/obd/stats/etrn/select/prefecture00.php?prec_no=&block_no=&year=&month=&day=&view=



(2)ここで、設定ファイルの地点名1をもとに、ブラウザ・ビューに表示されている地図をクリック・・・・できません。

そこで、ソース・ビューを開いて、リンク先を示すようなタグがないか探してみましょう。

どんなふうに探しても良いのですが・・・・ブラウザ・ビューの地図をクリックすると、ソースビューに緑色の枠(選択部分)が表示されるので、その周辺を探してみることにします。

おや(白々しい)、 <map name=”point”>….</map>というあやしげなタグがありますね。[+]をクリックして開いてみましょう。


(3)すると、「area」というタグがたくさんあります。そして、ブラウザ・ビューの地図にある地点名とタグ属性「alt」の値が一致していて、「href」にリンク先が設定されています。

この部分を使えば、ブラウザ・ビューの地図がクリックできなくても、地点名1のページを開くことができそうです。


(4)それでは、地点名1のページを開くために、ページ読込ステップを追加してください。そして、[アクション]タブの[URL]は、[見つかったタグのURL]を選択してください。

※ブラウザ・ビューの地図はクリックできないので、クリックステップではなく、ページ読込ステップでリンク先のページを開きます。


(5)次に、[ファインダー]を設定します。

下図を参照して、ソース・ビューの 「map」タグ要素の先頭にある「area」タグをクリックしてから、[ステップでこの タグ のみを使用]をクリックします。これで、[タグパス]が設定されます。

 ※先頭でないと[タグパス]に不要なものがついてしまいます。正「.*.div.div.map.area」、誤「.*.div.div.map.area[9]
 ※詳しくは、Kofaxのヘルプ「Kofax Kapow へようこそ > Design Studio > タグ ファインダーの使用 > タグ パス」を参照してください。


(6)そして、次のとおり設定します。

属性名 : alt
属性値 : 次のパターンに一致
      パターン : 過去天気情報.地点名1  ※変数


ここまでで、タグ属性「alt」の値が神奈川県(過去天気情報.地点名1)のリンク先(prefecture.php?prec_no=46….)を読み込む、ということになります。


《参考 HTML》

<map name=point>
<area alt="千葉県" href="prefecture.php?prec_no=45….">
<area alt="神奈川県" href="prefecture.php?prec_no=46….">
<area alt="長野県" href="prefecture.php?prec_no=48….">
<area alt="山梨県" href="prefecture.php?prec_no=49….">
</map>

(7)ステップ名は、わかりやすいように「Load Page 地点名1」に変更しておきましょう。


(8)エンドポイントをクリックすると、神奈川県の[地点の選択]ページが表示されます。



【3】設定ファイル地点名2のページを開く

(1)続いて、設定ファイルの地点名2をもとに、ブラウザ・ビューに表示されている地図をクリック・・・・できないので、さきほどと同じ要領でページを開きます。

まずは、ソース・ビューからリンク先を探します。すると、さきほどと同じように、 <map name=”point”>….</map>というタグが見つかりますので、[+]をクリックして開いてみましょう。


(2)こちらも、さきほどと同じような構成になっています。


(3)地点名1のときの設定を参考にして、地点名2のリンク先を開くステップを追加してください。

  1. ページ読込ステップの追加
  2. [ファインダー]タブ:[タグパス]の設定
  3. [ファインダー]タブ:[属性名]と[属性値]の設定
  4. [基本]タブ:[ステップ名]の変更





(4)エンドポイントをクリックすると、神奈川県横浜市の[過去の気象データ検索]ページが表示されます。


長くなってしまったので、今回はここまでにします。次もまたファインダーを使って、こんどは過去の年月をクリックしていきます。ファインダーだらけですねー。