競争店のチラシをキャッチ！～「デスクトップ用 Power Automate」でWebサイトを巡回キャプチャする～

とある流通業で衣料品を販売している私。
ITスキルゼロなのにイマドキの「DX業務改善」に興味を持ち1カ月前から研修に参加しています。

ところでみなさん、毎日の「折り込みチラシ」ってご覧になっていますか？　
![スクリーンショット 2024-09-10 052634.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/8d3bea59-f188-62d5-080c-fd40cf8047ca.png)

最近は小売店各社が自社のHPに【デジタルチラシ】を掲載していたり、【Shufoo！】をご覧になって各社のチラシ掲載商品や価格を比較される方も多いですね。

https://www.shufoo.net/

競争店のチラシは貴重な営業情報ですが、普段は他の業務もあり、なかなかその中身の確認まで出来ず後回しになる事が多い状態です。
しかし、後日売上低迷の要因を調べると、競争店がチラシでセールの訴求していたということもよくあります。

うーん、そうだ、 **競争店のチラシ** を自動でキャプチャできれば時間の都合で後回しになっていた業務がルーチン化できるかもしれない。

最近知った **【RPA】ツール「デスクトップ用 Power Automate** を使ってやってみましょう！

:::note info
「デスクトップ用 Power Automate」 は、Microsoftが提供するデスクトップオートメーションツールです。このツールを使って、マウスクリックやキーボード入力などの日常的なデスクトップタスクを自動化し、作業の効率を大幅に向上させることができます。ユーザーは専門的なプログラミング知識がなくても、直感的なビジュアルデザイナーを通じてフローを作成できます。
:::

https://www.microsoft.com/ja-jp/power-platform/products/power-automate/






# やりたいこと
Webページを自動巡回してチラシ情報をキャプチャするフロー

# 使用ツール
デスクトップ用 Power Automate
（以下URLはダミー）

# できたもの

https://x.com/A0Ishida2563/status/1833472586564710789

## フロー
![スクリーンショット 2024-09-10 021352.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/5a3607f3-1884-f2d3-2140-9bb465a69fb0.png)



# プロセス
## ①店舗リストの作成
今回は競争店のA社４店舗と自社６店舗をリスト化しました。
A社・自社それぞれの店舗のチラシ情報のWebページURLをあらかじめ確認し、txtファイル形式で店舗リストを作成。

A社用
```
https://www.A.co.jp/shop/single.php?shop_id=99999115
https://www.A.co.jp/shop/single.php?shop_id=99999147
https://www.A.co.jp/shop/single.php?shop_id=99999180
https://www.A.co.jp/shop/single.php?shop_id=99999178　
```
自社用
```
https://www.E.com/store/%E3%82%A4%E3%82%AA%E3%83%B3/%E3%82%A4%E3%82%AA%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%83%8A%E3%82%B4%E3%83%A4%E3%83%89%E3%83%BC%E3%83%A0%E5%89%8D/flyer/
https://www.E.com/store/%E3%82%A4%E3%82%AA%E3%83%B3/%E3%82%A4%E3%82%AA%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E6%B0%B4%E6%88%B8%E5%86%85%E5%8E%9F/flyer/
https://www.E.com/store/%E3%82%A4%E3%82%AA%E3%83%B3/%E3%82%A4%E3%82%AA%E3%83%B3%E5%85%AB%E5%8D%83%E4%BB%A3%E7%B7%91%E3%81%8C%E4%B8%98%E5%BA%97/flyer/
https://www.E.com/store/%E3%82%A4%E3%82%AA%E3%83%B3/%E3%82%A4%E3%82%AA%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E6%96%B0%EE4%B8%AD/flyer/6%BD%9F%E5%8D%97/flyer/
https://www.E.com/store/%E3%82%A4%E3%82%AA%E3%83%B3/%E3%82%A4%E3%82%AA%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E4%BA%AC%E9%83%BD%E6%A1%82%E5%B7%9D/flyer/
https://www.E.com/store/%E3%82%A4%E3%82%AA%E3%83%B3/%E3%82%A4%E3%82%AA%E3%83%B3%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E5%BA%83%E5%B3%B6%E5%BA%9C%

```
## ②作業用フォルダをデスクトップに設定
「チラシ集計」フォルダを設定し、
```C:\Users\＊＊＊\OneDrive\デスクトップ\チラシ集計\```
ここに「店舗リスト」のtxtファイルを保存します。

## ③デスクトップ用 Power Automateでフローを作成
「チラシ巡回用」として新規にフローを立ち上げ。

![スクリーンショット 2024-09-10 023321.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/0e8c955b-fbd7-5dfa-7a09-fdce4a503644.png)

最初に「ダイアログボックス」を設定して「自社」と「A社」を選べるようにします。

![スクリーンショット 2024-09-10 023543.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/7911e808-067e-79a7-b143-f432144abd92.png)

デスクトップの「チラシ集計フォルダ」
![スクリーンショット 2024-09-10 023938.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/06e3dd8b-803b-f865-714f-976fe538368e.png)

ファイルからテキストを読み取れるようにフローを設定し、ブラウザーを立ち上げます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/a579a941-f73e-4103-957a-59576b220f42.png)

「ループ」アクションの「For each」でWebページを巡回させてスクリーンショットを撮り、画像をファイルに保存します。

![スクリーンショット 2024-09-10 024551.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/8c72ea25-aeef-2fc2-05fc-87c4771b17e4.png)

フローを保存します。

## ④デスクトップ用 Power Automateでフローを実行
実行ボタンをクリック
![スクリーンショット 2024-09-10 025813.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/138628c8-2923-8f65-8edc-34ad5164847a.png)

最初に「リストを指定してください」とダイアログボックスが開きます。「自社」か「A社」を選択します。

![スクリーンショット 2024-09-10 025535.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/f38550a4-f87c-b582-87b0-c5b0011faa8c.png)

ブラウザー「Chrome」が起動します。

txtファイルの店舗リストのWebページを巡回しながらスクリーンショットを撮ります。

![スクリーンショット 2024-09-10 031105.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/4b1f748c-ceb3-77b1-8d3b-22bf63f502e7.png)

```C:\Users\＊＊＊\OneDrive\デスクトップ\チラシ集計\画像```
に「URL_RPAの開始時刻.png」形式でファイル名がつけられたスクリーンショットが保存されます。

![スクリーンショット 2024-09-10 031812.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/7a88cc18-4245-bb0c-076f-f588f19eeda1.png)

全画面でキャプチャしてスクリーンショットを撮っているので、拡大して「チラシ」を確認します。

＊キャプチャ画面　
（個別記事のため解像度を低くしています）

![スクリーンショット 2024-09-10 203837.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/7b6ad39c-16c3-3894-c8d7-f18cf135b5d6.png)


<details><summary>このフローのソースコード</summary>

```Robin:
Display.SelectFileDialog.SelectFile Title: $'''リストを指定してください''' InitialDirectory: $'''C:\\Users\\＊＊＊\\OneDrive\\デスクトップ\\チラシ集計''' IsTopMost: False CheckIfFileExists: False SelectedFile=> SelectedFile ButtonPressed=> ButtonPressed
File.GetPathPart File: $'''C:\\Users\\＊＊＊\\OneDrive\\デスクトップ\\チラシ集計\\画像\\chirasi''' RootPath=> RootPath Directory=> Directory FileName=> FileName FileNameWithoutExtension=> FileNameNoExtension Extension=> FileExtension
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''yyyyMMdd-HHmm''' Result=> FormattedDateTime
File.ReadTextFromFile.ReadText File: SelectedFile Encoding: File.TextFileEncoding.UTF8 Content=> FileContents
Text.SplitText.Split Text: FileContents StandardDelimiter: Text.StandardDelimiter.NewLine DelimiterTimes: 1 Result=> TextList
WebAutomation.LaunchChrome.LaunchChrome Url: $'''about:blank''' WindowState: WebAutomation.BrowserWindowState.Normal ClearCache: False ClearCookies: False WaitForPageToLoadTimeout: 60 Timeout: 60 BrowserInstance=> Browser
LOOP FOREACH CurrentItem IN TextList
    IF IsNotEmpty(CurrentItem) THEN
        Text.Replace Text: CurrentItem TextToFind: $'''[\\\\/\\\\:\\\\.\\\\=\\\\\\\\\\\\?\\\\&]''' IsRegEx: True IgnoreCase: False ReplaceWith: $'''%''%''' ActivateEscapeSequences: False Result=> Replaced
        WebAutomation.GoToWebPage.GoToWebPage BrowserInstance: Browser Url: CurrentItem WaitForPageToLoadTimeout: 60
        WebAutomation.TakeScreenshot.TakeScreenshotSaveToFile BrowserInstance: Browser File: $'''%Directory%\\\\%Replaced%_%FormattedDateTime%.png''' FileFormat: WebAutomation.FileFormat.Png
    END
END
WebAutomation.CloseWebBrowser BrowserInstance: Browser

```
</details>

# レビュー
次の日、自部署のミーティングで作成したフローを披露。 
**「Zoom」** で動作状況を共有してフィードバックを頂きました。



<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/215014e1-8026-2ddf-272c-2e1000edd52b.png">



:woman_tone1: **私** ： **「競争店チラシ」** の **「自動キャプチャーシステム」** を作成してみたのでご意見をください。

>:girl_tone1: **Ｔさん** ：何もしなくても画面が動いているのがすごいです。
>
:woman_tone1: **私** ：そこの評価は...ありがとう。でもこれが **「RPA」** といわれるものです。このツールで他のデスクトップ作業も自動化出来ますよ。
このシステム自体は業務に使えそうですか？

> **:man_tone1:Iリーダー** ：競争店のシーズン商品の割引のタイミングをを知るのに良いね。今年、A社の「水着」割引のタイミングが自社よりも早かったのに対策できなかったじゃない？
自社より、A社のサンプル数を増やしたほうが良い。あちらは店別に割引スケジュールが違うから、週間でストックすると来年の資料になるね。A社以外にU社のチラシも見たいな。

:woman_tone1: **私** ：改善点はありますか？

>**:man_tone1:Iリーダー** ：このキャプチャはA社の店別にフォルダにストックできるの？

:woman_tone1: **私** ：えっと、店名を「変数」で指定すれば可能かと…

>**:man_tone1:Iリーダー** ：HPのトップページ全部のキャプチャは必要の無いところが多いね。チラシだけ撮って全画面で見せて欲しい。担当外のチラシは要らないから、衣料品だけ撮ってくるのは出来る？

:woman_tone1: **私** ：えっ、A社のHPって毎週チラシの掲載数が違うから「UI要素」が使えないし「HTML」調べれば出来るのか？
衣料品のチラシかどうかは「ChatGPT」や「画像検索ツール」でタイトルと中身を検索させたら可能なのか？？？


まるで、【根拠のない売上対策】を説明しているのと同じ気持ちになりました。

# 結果
### 実務の要望はアイガー北壁のように高い。しかし一歩ずつ進む
 **「競争店チラシキャプチャの自動化」** というのは、サンプル設定の４店舗と言えど、１店舗ずつ実施すると約20分程度の作業となります。しかし、業務が立て込んで来るとその時間を割くのも惜しく、現状では優先度の低い扱いとなっています。しかし、上司の **「Iリーダー」** の言葉にもあるように、営業戦略上の重要な情報であり決しておろそかには出来ません。
これが自動化で週間単位にルーチン化できれば次年度の対策資料として十分活用ができます。

「デスクトップ用 Power Automate」は「ノーコードツール」として【ユーザーは専門的なプログラミング知識がなくても、直感的なビジュアルデザイナーを通じてフローを作成できます】とありますが、【変数】や【IF構文】など最低限のプログラミングの考え方や理解が必要だと感じました。「直観的」といえど自由に画用紙に絵を描くようにはいきません。

しかし、「デスクトップ用 Power Automate」を使いこなせれば、自動化で来る事は無限に考えられ **「Iリーダー」** の期待にも応えられると思います。


まずは自分自身のスキルアップを図り、自部署の実務に対応できるよう一歩ずつ頑張って行きたいと考えました。

<details open><summary>アイガー北壁</summary>

![スクリーンショット 2024-09-09 231550.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822083/f20b2a7e-b080-4cdf-0758-f13d1d07c207.png)

＊24/9/15　記事内容修正しました。

＜参考資料＞　ありがとうございました

https://qiita.com/If_it_bleeds-we_can_kill_it/items/659be3b662f222907aea

https://www.youtube.com/watch?v=ZrQW4UrR3w8&t=4713s

https://qiita.com/45shingo/items/9e795432caf207ac738a