LoginSignup
3
0

More than 3 years have passed since last update.

価格比較サイトの最安値更新通知をPower Automateで作る

Last updated at Posted at 2020-01-21

HTML解析して通知系も3本目です。
今回はとある商品価格比較サイトで、目的とする商品の現在価格を定期通知してくれるFlowをご紹介します。

参考:https://qiita.com/h-nagao/items/fdbfcf4a7dae6373a224

準備

データ保存場所

SharePointに商品名と、そのURL、購入の判断基準額(criteria)、そして現在の最安値(currentPrice)を含むリストを用意しておきます。
image.png

Urlがハイパーリンク列、criteriaとcurrentPriceは数値型です。

解析対象

商品のページのHTMLを見てみると、今回も非常にやさしい形で現在の最安値が表示されていました。
<span class="priceTxt">... の部分です。

image.png

Videoの更新通知の時と同じ要領で、価格の文字列を抜き出してあげます。

int(replace(split(split(body('HTTP'),'<span class="priceTxt">&yen;')?[1],'</span>')?[0],',',''))

最初のsplitは、上に書いているでの分割です。円マークは&yen;で指定しないといけません。
2個目のsplitは、の閉じ部分、での分割です。ここまでの2回splitで150,956という文字列が取得できました。
あとはreplace関数で、1000の位のカンマを取り除いて、最後にintで整数にします。

Flowの全体

コアな処理は上記の、現在の最安値取得で完了しています。
あとはリストに保存している現在値や基準額との差をとって通知を行いましょう。

今回はリストのアイテムの最初だけを使うので、以下のような引き算をしています。
※実際には複数アイテムを確認すると思いますので、その時はループの変数を使ってください。

int(sub(variables('lowestprice'),body('Get_items')?['value']?[0]?['criteria'])) #これで基準との差額計算

int(sub(variables('lowestprice'),body('Get_items')?['value']?[0]?['currentPrice'])) #これで前回との差額計算

「最初のアイテムだけ使っている」というのは、body('Get_items')?['value']?[0]に表れています。

image.png

これで完了です。
実際に動かすと、このような感じで通知がきます。
image.png

基準額を達成したら即ぽちりましょう!

おわり

HTMLを解析していろんな生活の役にたつ通知を自分でつくることができます。
とにかくとりたい値の前後でsplitしてみることからはじめましょう!少しHTMLを見る必要はありますが、慣れればすいすいと行くと思います。

なお、HTTPアクションはほかのアクションで置き換えることも可能です。
以下のリンク先を参考にしてみてください。
https://qiita.com/h-nagao/items/65f498d9d4e4f1a5fa50

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0