タグ別アーカイブ: Web

POWER AUTOMATE DESKTOP でAPIを操作してデータを取得するの巻

 APIは「アプリケーション・プログラミング・インターフェイス」の略語で、Webスクレイピングとは違い、あらかじめネット上に公開してあるデータを収集します

今回の記事では、Power Automate Desktopを使用してAPIを操作する方法を解説します

 尚、APIそのものについてはこの記事では詳細には解説しませんので、もっと詳細を知りたい方は他のサイト等を参考にされてください

データの時間

ビジネス+IT

実際に記事の内容を動かしてみて、APIというものを実感して頂けたら幸いです

一番簡単なパターン/登録不要

通常、APIを利用する際にはAPIを利用するサイトで登録を行い、ID等を事前に取得する必要があります

今回は、登録が必要なしで使えるAPIで操作を行います

その代わり、取得するデータも1行だけになります

 Power Automate Desktopでは、JSON形式にてデータを取得し、さらにデータを成型してメッセージで表示します

実際のフローで使用するのは3つのアクションだけになります

使用するAPIは「zipcloud」の郵便番号検索APIになります

ポイント

データの取得

郵便番号検索APIのサイトで示してあるリクエストパラメーターの型式に従って、リクエスト文を指定の箇所に送り、データを取得します

データの変換

取得したデータはJSON形式になっており、人間の目では読みにくい内容になっています

こちらを郵便番号検索APIのサイトで示してあるレスポンスフィールドの階層に従い、人間の読める内容に変換します

リクエストURL及び指定項目

データの取得に使用するURLは以下のURLになります

https://zipcloud.ibsnet.co.jp/api/search

指定項目の中で必須は郵便番号/7桁のみです

試しに上の画像の(例)をそのままブラウザに入力してみます

https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060

*「search」と「zipcode」の間に「?」が入力されている点にご注目ください(検索対象の郵便番号を変える場合には最後の7桁を変更します)

すると、次のように表示されます

今回は上記の画像の「address1/高知県」と「address2/南国市」をメッセージで表示します

実際のフロー

APIを操作するフローは3つのアクションで構成されます

アクション1:Webサービスを呼出します

zipcloudのサイトに掲示されているリクエストURL(https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060)をそのまま使いデータを取得します

使用するアクションは「Webサービスを呼出します」になります

パラメーター:URLの箇所に上記のリクエストURLを入力します

このアクションを動かすと、サイトからJSON形式でデータを取得し、以下の変数にデータを格納します

 下の画像は変数:WebServiceResponseに実際にJSON形式のデータが格納されたところです

アクション2:JSONをカスタムオブジェクトに変換

難しそうなアクション名のアクションですが、要は人間の目では読みにくいJSON形式のデータを読みやすく変換します

上記の画像のようにパラメーター:JSONにはデータが格納されている変数:WebServiceResponseを指定します

このアクションで変換されたデータは変数:JsonAsCustomObjectに格納されます

ここでAPIの取得データ・詳細を確認します

以下の画像はzipcloudの「レスポンス」の画面です

データの階層が2段階に分かれていて、1階層目が「status」「message」「results」の3つなのが分かります

そして2階層目が「results」の下の階層の実際のデータ項目/address1等になっています

ですので、このアクションで変換したデータも同じ構造になっています

上記の画像 はこのアクションで変換した内容を格納した変数:JsonAsCustomObjectの内容です

resutlsの項目の詳細表示をクリックすると次の内容になります

今回取得するのは1行だけですので、1行だけになっています

更に詳細表示をクリックします

次のアクションで上記画像の「address1」と「address2」をメッセージで表示します

アクション3:メッセージを表示

前アクションにて、データをJSON形式から人間の目で見える形に変えて格納した変数:JsonAsCustomObjectから、項目別に抜き出してメッセージを表示します

上記の内容の振り返りになりますが、取得したデータは2階層になっています(一部省略)

・results >>(address1,address2・・・)

上記の階層に対応した形で取得データを「address1」と「address2」に分けて抜き出します

・address1 ➡ %JsonAsCustomObject.results[0].address1%

・address2 ➡ %JsonAsCustomObject.results[0].address2%

実際に上記の2つの内容をアクションに反映したのが次の画像です

以上です➡次回に続く

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

Power Automate Desktop でWEB操作を的確に行うための虎の巻

【RPAでの操作で一番問題となるのは、WEBサイトの操作だと思います。今回はセレクターの編集も含めて、WEB操作の裏技をいくつか紹介します】

 WEBサイトはRPAで操作する機会が多く、しかも「リンクをクリックできない」などの理屈では理解しがたい事も良く起こります

特にPower Automate Desktopの場合には、他のRPAと比べてWEB操作の細かな調整機能は充実しているとは言えません(2022年1月現在)

この記事ではWEBサイトをPower Automate Desktopで操作するための「便利技・裏技」を幾つか紹介していきたいと思います

実際のRPAの作成場面では、様々な技を組み合わせて色々と思考錯誤することになると思います

気を付けて頂きたいのは「完璧主義」に陥らない事です

RPAで100点を狙うのはかなり困難です

それなりのところで、それなりのケリをつけて次の行動に移っていきましょう

 アクション逆引き辞典

待ち処理

これはRPA処理全般の定番です

 RPAは事前に設定された通りに処理を進めていくため、WEBサイト側の操作を待ちきれず、処理の空振りを起こすことがよくあります

待ち処理を入れるアクションはフローコントロールの箇所にあります

待ち秒数は小数点単位でも指定できます

リンクのクリック⇒マウスでホバー+クリック操作

「確かにクリックしているはずなのに・・・」動かないことはよくあります

対処方法として下の画像のように、リンクのクリック処理を「操作対象(UI要素)にマウスを置く」のと同時に「左クリック」を行う操作に置き換えるとうまくいくことがあります

*注意:あくまでリンクのクリック処理がうまく行えるようになる可能性があるということです(必ずうまく行くとは限りません)

セレクタービルダーの編集

WEBサイトは裏ではHTMLコードにより作成されています

このHTMLコードの領域に踏み込んで、WEBサイト内のボタンやリンクを操作するのが今回の主旨です

話の中心になるのは、WEBサイト内のボタンやリンクの場所を表すUI要素の事になります

処理階層の変更

今回は下の画像の箇所をクリックするUI要素について解説します

上記のUI要素を指定すると、アクション内に次のように表示されます

一度設定したUI要素は、Power Automate Desktopの画面右側で編集することができます

上の画像のように画面右のマークをクリックすると、UI要素の編集画面が出てきます

まず下の画像の三点リーダーの箇所をクリックします

すると次の画面が出るので更に「編集」をクリックします

すると次のようなセレクタービルダー画面が開きます

こちらの画面で、画面左のチェックを変更してみます

上の画像の状態のままだとWEBサイト内の画像の箇所をホバーするイメージです

では、階層の一番下のチェックを外してみます

こうすると、上の画像の「<a>より右の文字列」をホバーします

こうしたセレクタービルダーの階層の変更により、より良くWEB操作をできることがあります

*注意:あくまでリンクのクリック処理がうまく行えるようになる可能性があるということです(必ずうまく行くとは限りません)

カスタム画面 vs ビジュアルエディター画面

セレクタービルダー画面には2種類あります

下の画像はカスタム画面です

上の画像の左下のボタンをオフにすると、ビジュアルエディター画面に変更できます

このビジュアルエディター画面では直接コードを編集することができます

繰返し処理への変数組込/数字指定

UI要素を変えながらクリックしていく場合に、セレクタービルダーに変数を組み込んで繰返し処理を行わせることができます

下のGIF画像では、繰返し処理により「速報」タブ⇒「ライブ」タブとクリックしていっています

上のGIF画像で動かしているフロー内では、UI要素の中に変数を次の画像のように組み入れてあります

上の画像の「%LoopIndex%」はLoop処理アクション内で設定してある変数です

Loopアクションの中で「LoopIndex」は0⇒1⇒2と数字を増やしていきます

同じ様にUI要素に組み込まれた「LoopIndex」も0⇒1⇒2と数字を増やしていきます

同時に指定するUI要素も変更されていくわけですが、この理屈をお話したいと思います

上の画像の「速報」「ライブ」「個人」のタブのUI要素を取得して、ビジュアルエディターの画面内のコードをメモ帳にコピーして並べます

そうすると、規則性が見えてきます

上の画像で言えば「eq()」の中に「数字が動く変数」を組み入れれば、「速報」「ライブ」「個人」のタブのUI要素のコードを表現できることが分かります

繰返し処理への変数組込/文字列指定

上の例でセレクタービルダーで数字が動く変数を組み入れました

文字列でも指定することができます

次の画像の黄色く印を付けた箇所で、それぞれUI要素を取得します

今回は、ビジュアルエディターではなくカスタム画面を開いてみます

すると、3つのUI要素の違いは上の画像の黄色の箇所(IDの箇所)であることが分かります

ですので、今回はIDの箇所に変数を組み入れます

上の画像の変数:myNameを繰返し処理の中で変更する方法ですが、様々な方法があると思います

今回はエクセルを使用した方法を紹介します

エクセルに3つのIDの共通・文字列/ap_以外を入力しておきます

そして、繰返し処理の中でエクセルの1列目([0])を読込、変数に設定します

実際に繰返し処理を動かした様子が下のGIF画像になります

UI要素の名前変更

取得済みのWEB要素を他のアクションで使い回したい時があります

取得したUI要素は一覧の中から選び易いように名前を変更できます

該当のUI要素の上で「F2」キーを押すと、名前を好きな名前に変更できるようになります

*右クリックでも変更できます

UI要素の変更への対応

UI要素は常に固定されているとは限りません

RPAを動かしていると、UI要素の変化に対応する必要な場合があります

下のGIF画像は、テキストを抽出してメッセージを表示するロボットですが、このテキストは常に変更されていくものとします

上のGIF画像で抽出されるテキストは「Excellent仕事術_2022」となっていますが、「仕事術」のテキストはUI要素が変更になった場合も固定で含まれていると仮定します

ビジュアルエディター画面ではこういった場合にそなえて「特定の文字を含む」指定が行えます

次の画像は、上のGIF画像にて「テキストを抽出する際に指定したUI要素」のビジュアルエディター画面です

こちらの黄色く印を付けた箇所を次の画像のように変えると常に「仕事術」のテキストを含むUI要素が扱えるようになります

指定の仕方としては次のようになります

タグの種類名:contains(‘固定テキスト’)

実際に上記の設定でRPAを動かしてみます

サイト内のテキストが「Excellent仕事術_2022⇒仕事術_20220115」のように変わっても正しくテキストを抽出します

この「含む」の指定を行う場合、準備としてサイトの中味のHTMLコードを確認し、タグの種類を取得する必要があります

上の画像でいえば、黄色く印をつけた「p」のことです

確認を行うには、まずはサイト内で必要な場所で右クリックをします

「検証」という文字が見えますのでこちらをクリックします

すると下の画像のような画面が開きます

こちらの画面でサイトの中味を確認することができます

ここで扱いたいテキストの前の<p>に注目してみてください

これがHTMLコードを書くときに必ず出てくる「タグ」というものです

詳細はここでは述べませんが、前述のようにこのタグの種類については事前確認が必要です

例えば、「Excellent仕事術_2022」が「見出し」としてサイト内に表示されているとします

するとタグの種類はpではなくh2になります

タグの種類がh2の場合には、セレクタービルダー内での指定も次の画像のように変わります

上のHTMLコードの内容をもっと深堀しておきたい方はぜひこのサイトから学習をはじめてみてください

このprogateは手を動かしながら学べるサイトになっていて、タグの役割なども分かり易く解説しています

画像認識の活用

画像の許容度を上げる方法

画像をクリックする方法はPower Automate Desktopではとても有効です

ただ画像をクリックする方法はとてもセンシティブです

見た目では分からないような、ちょっとした画像の映り方が変わっただけでもクリックできなくなることもあります

この場合には画像認識の許容度を上げることで対処することができます

マウスを画像に移動します」アクション内に詳細という項目があります

上の画像の左下に「詳細」の項目があります

こちらをクリックすると「許容値」を調整する箇所があります

通常、許容値は10で設定されています

例えば、次の2つの画像の上側の画像を許容値:10のままで設定してクリックできるようにしたとします

仮に同じ設定のまま下の画像をクリックすると認識できずにエラーになります

この場合、許容値を20に上げると画像認識が行えるようになります

*注意:ケースバイケースで活用をお願いします(逆に許容度を下げる方がベターなケースもあります)

画像認識+キー操作

RPAでWEBサイトを扱っていると、どうしてもクリックできないところというところも出てきます

この場合には「画像のクリック」を起点にし、矢印による移動やtabキーを組み合わせることで「思わぬ所」もクリックできるようになります

上のGIF画像では、まずは「インポート・エクスポート」の画像をクリックすることにより、通常は見えないメニューを表示した後、「矢印」で移動を行っています

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

無料RPA/Power Automate Desktopを動かしてみよう!

先日、Power Automate Desktopの凄さを紹介しました。今回は、実際にPower Automate Deskotopでシナリオを動かしてみましょう!実際にシナリオを動かした時に「意外と簡単だった!」と思ってもらえると嬉しいです

ところで、シナリオとはなんでしょう?

ここで昔話の「ももたろう」を思い出して下さい

【むかし、むかし、あるところに、おじいさんとおばあさんがすんでいました】

から話しがはじまり、そしてももたろうが登場し、最後に

【ももたろうは、おじいさんとおばあさんがまついえにかえり、しあわせにくらしました】

で終了です

このももたろうの話しには「始まり」があり、「終わり」があります

RPAのシナリオも同じです

始まりがあり、終わりがあります

この始まりがあり、終わりがある点を意識してRPAシナリオを作成してみましょう

*Power Automate desktop (以降PAD)のダウンロードは過去記事を参照してください

シナリオの内容

今回作成するRPAシナリオはHPからダウンロードしたファイルを指定フォルダに移すというものです

①HPをa:Internet Explorerで開く

②HP内のダウンロード用ファイルのb:専用リンクをクリックする

③c:ダウンロードフォルダにd:リンクから取得したファイルをダウンロードする

c:ダウンロードフォルダからd:ダウンロードしたファイルe:指定フォルダに移動する

⑤a:Interet Explorerを閉じる

ここで「ももたろう」の話しを思い出してください

①で開いたURLは⑤で閉じるのは分かり易いと思います

では、②でクリックしてダウンロードするファイルはどうするか?

こちらは、③でダウンロードフォルダに一旦ダウンロードした上で④で指定フォルダに移動します

上記の①から⑤の中でa~eが登場していますが、こちらは後で「変数」として登場してきます

HPを開く

シナリオを実際に作成する前に新しいフローを作成しましょう!

すると違う画面が開きますので、そちらでシナリオを作成します

HPを開くアクションはPADの画面左から選択します

下の画像の「ブラウザー自動化➡Webフォーム入力」から該当のアクションを選択します

下のGIF画像のように選択したアクションを真ん中にドラッグすると、アクションの中味が開きます

そして、開いたアクションにURLを記入します

このアクションを指定する際には、下の画像のように「Browser」という変数が自動されます

こちらは、前述のa:Internet Explorerに対して分かり易く「名前」を変数として付けたと思っておいてください

*変数について詳しく知りたい方は、ぜひ過去の記事をご参照ください

リンクをクリックする

こちらは【②HP内のダウンロード用ファイルのb:専用リンクをクリックする】と【③c:ダウンロードフォルダにd:リンクから取得したファイルをダウンロードする】を一つのアクションで行います

こちらのアクションもPAD画面左の「Webフォーム入力」の箇所にあります

選択するアクションは「Webページのリンクをクリックします」ではなく「・・・ダウンロードリンク・・・」になります

下の画像は「・・・ダウンロードリンク・・・」のアクションの中味です

こちらでは2か所を指定します

b:専用リンク

c:ダウンロードフォルダ

まず、bの専用リンクは上の画像の「UI要素」の箇所で指定します

上のGIF画像内の「青いボタン/UI要素の追加」をクリックした後は、該当のHPに移動します

HPに移動したら、リンクしたい箇所にカーソルを置きます

そして、カーソルが置いた箇所が赤くなったらCtrlキーを押しながら左クリックします

すると左クリックしたリンクの名称が、上の画像のように「追跡セッション」に表示されます

名称が正しければそちらをクリックします

クリックした後は、下の画像のようにリンクしようとしている「リンクの画像」が表示されますので、こちらが正しければ「完了ボタン」を押してUI要素を確定します

次のc:ダウンロードフォルダは下の画像の箇所から指定します

上の画像の黄色の印を付けた箇所をクリックすると、フォルダの指定画面が開きます

このアクションを指定する際には、下の画像のように「DownloadedFile」という変数が自動されます

こちもも、前述のd:ダウンロードしたファイルに分かり易く「名前」を変数として付けたと思っておいてください

ファイルを移動する

こちらのアクションはPAD画面左の「ファイル」の箇所にあります

こちらも2か所を指定します

まず移動するファイルですが、こちらは前述のd:ダウンロードしたファイル、つまり変数「DownloadedFile」を指定します

変数を指定する場合には、Xマークをクリックします

Xマークをクリックすると、設定してある変数が一覧で表示されます

こちらの一覧から「DownloadedFile」を指定します

次にファイルの移動先のフォルダを指定します

Internet Explorerを閉じる

最後に開いたInternet Explorerを閉じます

こちらのアクションの中味には自動で開いたアクションで自動設定された「Browser」がこちらにも自動設定されます

自動設定された「Browser」には%がついています

これは文字列の「Browser」と区別するためです

<まとめ>

今回はPADでHPを開いてファイルをダウンロードするシナリオを作成しました

別な機会でシナリオを作成する際にも、記事の冒頭で記したように「開始」と「終了」をぜひ意識してみてください

今回の記事の内容にて、実際にシナリオを作成する際には、少し「引っ掛かる」箇所もあるかと思います

特にリンクをHPから指定する時にはちょっと慣れが必要です

例えば、該当箇所をカーソルで指定してもすぐに赤くならないことがあります

この場合、少し辛抱して待つ必要があります

後、Ctrlキーと左クリックするタイミングが合わない時があるかもしれません

その際も、少し辛抱強く何度か試してみてください!

RPAのシナリオ作成は理窟よりも、とにかく慣れた方が早い箇所も多々あります

今回は以上です

最後まで長文にお付き合い下さり、誠にありがとうございました!


にほんブログ村

Power Queryって何??9~Webページからデータ取得~

 今回は、Power Queryを使用してWebスクレイピングを行う方法について解説します。この方法を習得すれば、Webページの内容をエクセルシートに転記する手間が省けるようになります!

以前、Power Queryはスマホと同じだという記事を書きました

スマホではネットで好きなレストランを検索、つまり、レストランの情報を取得し、そしてスマホからそのまま予約の電話をすることができます

 Power Queryも様々な箇所からデータを取得して、そのまま取得したデータを活用できます

実は、Power QueryではWebページの内容も取得できてしまうんです!

Webページに接続して、直接データを取得出来たら、次のようなWebページにある情報をエクセルシートに転記するような作業を削減できます!

・他社のIR情報の取得

・株価の取得

・その他のニュース記事

今回はある会社のIRページからPower Queryを使い、月次の数字を エクセルシート上に直接読み込んでみましょう!

Power Queryでは取得したいWebページのURLを入力しさえすれば、Webページのデータが取得できてしまいます

皆さんも馴染みのあるHPで試してみてください

今回の解説には、次ページを使用します

Webデータ/サンプル

解説に使うページを確認したところで、詳細な解説をはじめます

では、まず最初にエクセル画面の以下の箇所をクリックします

取得画面

すると、HPのURLを入力できるようになります

URL指定

上の画面でOKボタンを押すと、ナビゲーター画面が立ち上がります

ナビゲーター画面

ナビゲーター画面に「10月月次データ」というテキストが表示されるので、そのテキストをクリックするとHP上の表が画面上に再現されます

HPから表を読み込めそうなことが確認できたので、このまま処理をすすめます

画面下で読みこみ先ボタンをクリックします

データのインポート画面が開くので、2か所指定します

・どのように表示するか⇒テーブル

・データを返す先⇒新規ワークシート

OKボタンを押し、実際に読み込まれたデータはこんな状態でした

見出しが2行だったのが1行になってしまっています

Power Queryでは必ずしも完璧に読み込めるということではなさそうです

ですが、一から手でHPから転記するよりは断然早いですよね!

Power Queryを覚える価値はありそうです!

今回はPower Queryを使用してHPのデータをエクセルシートに読込ましたが、前回はPDFファイルからも読み込んでいます

ぜひそちらも参照してみてください

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ

にほんブログ村