「Power Automate Desktop」でMSNのTOPニュースを取得する

技術情報

こんにちは。ヒデモです。

前回はPowerShell的な使い方が多かったので、改めてRAPっぽくWEBブラウザ操作をしてみました。
せっかくなので、WEBニュースを閲覧する時に遭遇する「もっと見る」を自動回避してみます。
「Power Automate Desktop」のインストール方法と簡単なフローはこちらの記事をご覧ください。

試すこと

MSNの総合TOPニュースを閲覧
「もっと見る」のクリックを自動化し、記事全文を閲覧
ニュースのHTMLソースを取得
記事全文をテキストファイル化
ニュースの一部を画像化

フロー作成してみる

1.最初はブラウザ起動する

早速、試したいことをもとにWEB操作を行ってみます。
表示したいサイトURLを張り付けます。今回はMSNのTOPページを指定しています。

2.総合TOPの記事をクリックさせる

MSNのTOPページの左上、総合ニュースに画像付きで表示されるトピックニュースをクリックさせましょう。
まず「WEBページのリンクをクリックします」を選択すると以下のような画面がでます。

UI要素をクリックすると、「新しいUI要素の追加」ができるので、これを使ってUIを取得します。
ちなみにフロー作成画面の右端にあるアイコン「UI追加」からでも同様にUIの取得ができます。
※初見じゃわかりくい場所にあります。
「追跡セッション」が開いている状態で、UI要素にマウスカーソルをあてると”<p>”のようにタグ名が赤枠で表示されます。この状態で、赤枠をCTRL押しながら左クリックでUIを追加できます。
説明には左矢印も同時に押してと記載がありますが、押さなくて大丈夫です。(おそらく誤訳でしょう

3.「もっと見る」をクリックさせる

※記事全文を取得するだけなら、実は不要でした。画像化する際に「もっと見る」があると格好が悪いので残しています。
WEBニュースのあるある「もっと見る」、鬱陶しいので自動化させちゃいましょう。
同じようにマウスカーソルを当てて、UIを取得します。

4.すべての記事内容を取得する

次は記事内容をテキストで抽出してみます。
使ったアクションは「WebページでJavaScript関数を実行する」です。
※本当は用意されているアクションでやりたかったのですが、出来なかったのでJavaScriptでごり押ししました。
記事を解析すると、”articlebody”要素の中に、複数の”p”要素があることがわかりました。
“p”つまり、段落ごとに記事がかかれているのですね。
ここまでくればあとは”p”をまとめて取得して、中身のテキストを抽出するだけです。
↓がこれらを実現している処理。

5.記事のソースを取得する

ソースの取得は「Webページ上の詳細を取得する」でできました。非常にシンプルです。
ソース解析も組み合わせることで、WEBスクレイピングも可能です。

6.記事を画像化する

画面キャプチャを取得するアクション「Webページのスクリーンショットを取得します」でやりました。
今まで同様に、取得したいUIを選択させます。選択範囲が画像化できると思えばOKです。

7.できあがり

今まで作ったアクションで、下のフローが完成します。
PCスペックに依存しますが、ページ反映が遅いので「もっと見る」の後に、待機時間を追加しています。

OUTPUTはこんな感じです。


やってみてわかったこと

1.低スペックPCだと動作がもっさりでストレス溜まる

6年程度前のノートPC(メモリ4Gib、CPU i5-4200)なので、検証PC性能が悪いせいもあるのですが。全体的にもっさりしています。特にHTML UI要素取得の動作が遅く、
近年発売しているPCであれば問題ないと思いますので、古いPCでの使い方は推奨しません。

2.HTML UI要素の取得が難しい

実際にやってみるとわかりますが、少しずれるだけでUI取得できなくなります。
これが非常にストレスで”a”タグを取得したいのに、”div”が反応することもあります。
UI要素の取得動作は、改善してほしいですね。

出来なかったこと

1.IE以外のブラウザでWEB操作

これさっぱりわからないのですが、ChromeでIEと同様な手順を踏んでもUI要素が取得できないのです。
こんなかんじにUI取得できているようにみえますが、これは失敗です。IEでも起こることがあります。
“a”としてUI取得したいのに、”HyperLink”として認識されている気がしますね。
Chromeでもできたよー!!って方、是非やり方を教えてください。

2.要素内にある複数の要素を取得できない

今回はJavaScriptでごり押ししましたが、ほかにいい方法ないのでしょうか?
「WEBページからデータを抽出する」で取得できそうなのですが…
ウィンドウ後ろのWEBページみてもわかるように、”p”タグが点線で囲まれています。
ぱっとみできてるように見えますが、実際に動かすと何も取得できていませんでした。

今回は、WEB操作を主にやってみましたが、とにかくPCスペックが低いので動作が重かったです。
いつかPC環境をよくしたいなと思っています…

おしまい。

コメント

タイトルとURLをコピーしました