PowerAutomateDesktopを使って、スクレイピングで得たテキストを自分にメールで送る方法

##はじめに

皆様、こんにちは。小売業のシステム部門で働いているhousakoです。
今日は、定期的に新着情報を確認したいサイトから、新着情報の日時とタイトルを取得して自分自身のメールに送信する方法を紹介します。

物忘れが得意技になりつつある私は、毎日必ず確認するOutlookでToDoを集中管理しています。ブラウザを開いて最新記事をチェックするのを忘れても、自動的にメールで届けば毎日新着の有無をチェックできますよね。

##概要

今回は、情報セキュリティ上の注意喚起と脆弱性に関する新着情報を、JPCERTのWEBサイトから取得し、テキスト形式でローカルに保存します。更に、そのファイルを添付したメールを自分に送付する、という処理を、PowerAutomateDesktopで自動的に行います。

##実装

使用するのは、PowerAutomateDesktopとEdge、そしてOutlookメールです。
それでは、フローを作っていきましょう。

事前に準備するのは、以下2点です。
　　・閲覧したいサイトのURL
　　・上記URLをEdgeで開いたウィンドウ

準備が出来たらPowerAutomateDesktopを起動し、「新しいフロー」をクリックしてください。フローの名称は任意に決めてもらって構いません。

####1.サブフロー：新しいMicrosoftEdgeを起動する

検索窓にedgeと入力すると、「新しいMicrosoftEdgeを起動する」という候補が表示されるので、これを右側の空白部分にドラッグ&ドロップします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/8b55c38a-5f40-4a8e-4e47-18bf08918654.png)

パラメータの選択画面が勝手に開くので、初期URLに事前準備しておいたURLを貼り付けます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/a2a86b53-1693-0f17-4047-42892a736771.png)

####2.サブフロー：Webページからデータを抽出する

検索窓にwebと入力すると、「Webページからデータを抽出する」という候補が表示されるので、これをサブフロー1の下にドラッグ&ドロップします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/dbdc9774-1643-d957-a6c2-1cb1cc98a876.png)

パラメータの選択画面が勝手に開いたら、事前準備しておいたWEBサイトを開いた状態のウィンドウを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/cd6f0e52-4067-1976-91c7-4562aa890185.png)

スクレイピングで得る情報が表示されている部分に、<font color="red">赤い枠<font color="black">を合わせたら<font color="blue">右クリック<font color="black">して、「要素の値を抽出」→「テキスト」の順に選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/8367573a-1f81-131f-1c46-bceaaac64795.png)

抽出する情報の指定が出来たらこのような画面になりますので、「終了」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/eb88accc-4531-a087-e2e4-abc08f88d52f.png)

パラメータの選択画面に戻りますので、「保存」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/91fd254d-bdb8-de88-45eb-6335b202a720.png)

####3.サブフロー：テキストをファイルに書き込みます

検索窓にテキストと入力すると、「テキストをファイルに書き込みます」という候補が表示されるので、これをサブフロー2の下にドラッグ&ドロップします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/f95d20ea-b1d8-e899-77d3-e0d627019e05.png)

パラメータの選択画面が勝手に開きます。
ファイルパスには、WEB画面から取得したテキストを保存したいファイル名までフルパスで指定してください。（拡張子「txt」も忘れずに）
書き込むテキストは、枠の右端にある「x」をクリックしたときに出てくる候補の中から「%DataFromWebPage%」を選択してください。
それと、新着情報だけを記録したいので、「新しい行を追加する」はOFFにしておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/03b29b88-3795-966f-1de9-839269b2f8c2.png)

####4.サブフロー：Webページからデータを抽出する

先ほどは、左側の「注意喚起情報」を取得しました。右側の「脆弱性関連情報」も欲しいので、今度はこちらの最上段にあるテキストを取得します。

サブフロー2をコピペして、最下段に配置するのが楽です。
配置したサブフローをダブルクリックして、先ほどの要領でテキストを取得する枠を指定してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/744771cc-ac08-aa01-ad81-9b4efb9588b5.png)

####5.サブフロー：テキストをファイルに書き込みます

サブフロー4と同様、こちらもサブフロー3をコピペするのが楽です。
最下段に配置したら、ダブルクリックして保存先ファイル名を変更してください。

####6.サブフロー：Webブラウザを閉じる

サブフロー5までで、必要な新着情報の日時が取得できたので、ブラウザを閉じます。
「ブラウザー自動化」の中にある「Webブラウザを閉じる」を、サブフロー5の下にドラッグ&ドロップしてください。パラメータの選択画面は、そのまま「保存」で構いません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/c1e773f4-0ff6-5a8f-2e87-956e5ba393f4.png)

####7.サブフロー：Outlookを起動します。

ここからは、取得したテキストを保存したファイルを、Outlookで送信する動作の定義です。
「Outlook」の中にある「Outlookを起動します」を、サブフロー6の下にドラッグ&ドロップしてください。自動的に開いた画面は、そのまま「保存」で構いません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/3de46b17-30d5-9c56-d8c7-aceda4e2b96c.png)

####8.サブフロー：Outlookからのメールメッセージの送信

「Outlook」の中にある「Outlookからのメールメッセージの送信」を、サブフロー7の下にドラッグ&ドロップしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/2ff855c7-aaf0-c46f-e884-2049407096bc.png)

パラメータの選択画面が勝手に開きます。下記の要領で指定してください。
　　　・アカウント　：自分のメールアドレス
　　　・宛先　　　　：自分のメールアドレス
　　　・件名　　　　：任意の件名
　　　・本文　　　　：任意の本文
　　　・添付ファイル：サブフロー3と5で保存したファイル
　　　　<font color="blue">※Ctrlキーを押しながら指定すれば、複数ファイルを添付できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/ce3bd8b9-b00c-d143-bcff-daebe78a7de5.png)

以上で設定は完了です。ひとまず、上書き保存しておきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/bdc82f0f-62e3-570b-6841-bf4d0b02abc9.png)

それでは、実際に動かしてみます。
赤枠の中にあるテキストが添付されたメールが自分に届けば成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/340e7463-2bd6-2391-ae1a-c1eaf885578b.png)

メール、届きました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/b3be4edb-ee13-b007-44e6-1248eb5f2f5b.png)

記録されたテキストも、WEBサイトの内容そのまま、です。
意図した通りになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/f7bc6d2b-bc34-3a22-37f3-c31bd35d613c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2496293/0aa4751b-d2ae-c431-95bc-e3c611df5c91.png)


##おわりに

まだまだ勉強不足で、未知のコマンドがいっぱいあります。
まずは、「覚えたての知識」と「限られた休日の時間内に調べてわかったこと」を組み合わせて自分の役に立つものを作ってみたわけですが、これから更に勉強して更に役に立つ使い方を模索していきます。
最後までご覧になった皆様、ありがとうございます。
また、私の投稿を見つけられましたら、もっと良い記事にしていきますので、まだ読んでいただけると幸いです。