ウンcodeプログラマの日常

底辺大学生プログラマの技術的なメモです

無料の業務自動化ツール、PowerAutomate Desktopを触ってみた

経緯

友人がyoutube-dlと何かを組み合わせて、任意のチャンネルの最新動画を探してダウンロードしてくる処理を作れないかという話になり、そういえば少し前に話題になったときに入れたPowerAutomate Desktopを全然使っていないことを思い出し、試しにその処理を自動化してみることとした。

やりたいこと

https://www.youtube.com/c/KohAoki/videos
のようなYoutubeチャンネルのURLをリストにしたテキストファイル「channelList.txt」から読み出し、最新の動画(一番上左にある動画とする)のリンクを取得、list.txtに改行区切りで書き込み、最後にyoutube-dlを動かす友人お手製のバッチファイルを実行するというものである。
主にWebスクレイピングとファイル読み書きとなっている

完成形

完成したPowerAutomate Desktopのコードは以下のようになった f:id:MogamiTsuchikawa:20210527031057p:plain

ハマった点

ブラウザープラグインが分かりにくい

PowerAutomateプラグインを導入したMicrosoftEdgeを使用しWebページ上の要素の詳細を取得しますブロックを用いて<a>要素のURLの取得を行った。
本来下記画像のように、ブロックを編集中にプラグインが導入されているブラウザを立ち上げれば、DOM要素を指定して、指定部分のhrefなり情報を抜き出せるのだが、それが全然出てこなかった。 f:id:MogamiTsuchikawa:20210527031727p:plain プラグイン一覧を確認したところ、プラグインが無効化(したつもりはないので最初からなっていた?)されていた。これを有効化することで画像のようにDOMの選択が可能となった。

改行コードを指定してテキストを分割できない

PowerAutomate Desktop、MSが作っていることもあり非常に完成度が高いのだが、非常に残念な事に改行コードがサポートされていない。 具体的には文字列に改行を加えたり、改行を区切り記号として分割するなどができないのだ...
ひょっとして無料版だけのMSの意地悪かと思ったが、どうやらそうではないらしい...
仕方なく、channnelListにはURLと各行の最後に@を加えて改行したものに変更し、PowerAutomate Desktopでの処理は最初に@でテキスト分割を行い、その後テキストのトリミングで空白や改行コードを削除し、ブラウザに開かさせる処理とした。

残念な点

エクスポート・インポート機能が無い

エクスポート・インポート機能が無い。正しくは無料版には無い。
基本的に自分のMSアカウントにログインしているアプリからでしか利用出来ないようである。
GASなどではJSで書いているので当たり前にプログラムコードをネットから流用や共有ができ、便利に使えているので、これはちょっと辛い。

改行コードや空白文字の扱いが良くない

先ほど書いたとおり改行コードを明示的に利用出来ず、空白文字にかんしてもifで直接扱えず、変数を通して入力するという、かなり面倒な仕様となっている。
これは正直アップデートで解決して欲しい。

良さそうな点

Webスクレイピングが簡単

Webスクレイピングが結構簡単にできるのが非常にメリットだと思う。これだけでPythonなりで組むのとかなり迷う。

PDFやOCR、システム周りを触れて便利そう

PDFを簡単に扱えたり、OCRといった機能が使えたりと、使用用途に寄ってはかなり便利そうである。 特に驚いたのはコンピュータのシャットダウンやロック、画面解像度の変更、環境変数の指定などこういった業務自動化ツールで使えなさそうなものが使えるのに魅力を感じる。単に事務作業だけでなく色々と自分のPCをカスタマイズするのに役立ちそう。 f:id:MogamiTsuchikawa:20210527033500p:plain

少し癖はあるが、かなり有用なのでデスクトップでの処理の自動化に積極的に使っていきたいですね。