Power Automate Desktop テキスト 抽出

Power Automate Desktop テキスト 抽出
PAD

2022.03.06 2022.02.16

「Power Automate Desktop」のアクション「PDF からテキストを抽出」について、具体例をつかって解説をします。

具体的なアクションの使い方

PDF ファイルからテキストを抽出します。

Power Automate Desktop テキスト 抽出

PDF ファイル

こちらで指定したPDF ファイルからテキストを抽出します。

抽出するページ

パラメーターの選択「抽出するページ」では、以下の項目からひとつを選択します。

選択項目 内容
すべて 指定したPDFファイルのすべての画像を対象とします。
単一 画像取得の対象とするPDFファイルの「単一ページ番号」を指定します。
範囲 画像取得の対象とするPDFファイルの「開始ページ番号」と「終了ページ番号」を指定します。

活用事例

こちらのPDF ファイル(ファイル名「SAMPLE.pdf」)を使ってご紹介します。

先ほどのアクションでこちらのファイルを指定して結果を確認します。

Power Automate Desktop テキスト 抽出

こちらが実行結果です
テキストのみを抽出することができました。

Power Automate Desktop テキスト 抽出

画像内に含まれるテキスト情報は、テキストではなく画像として認識されます。

上記の例の場合では、画像内に含まれる文字「アクション」などは画像として認識されるためテキストとしては抽出されません。

その他の「PDF」に関するアクションはこちらをご覧ください。

Power Automate Desktop テキスト 抽出
自動化・プログラミング

2022.03.30 2021.09.21

Power Automate Desktopを使って、受信したメールの本文テキストから必要な箇所を抽出するフローを作ってみます。

Power Automate Desktop テキスト 抽出

メール本文の抽出したい箇所を確認する

前回からの続きで、消費者庁のリコール情報新着メールを利用して、ネット販売に活かせる情報を抜き出してみます。

※ 本ブログのRPA・自動化は、主にネット販売に活かすためのものを記事にしていますが、本記事を参考に他でも充分応用可能かと思います

消費者庁のリコール情報新着メールのメール本文は、以下のように1リコール商品につき3行で記載されています。

  • 商品名
  • リコールとなった理由・経緯
  • リコール詳細が記載されたページのURL
Power Automate Desktop テキスト 抽出
引用:消費者庁のリコール情報新着メール

なお、記載されているURLのページにアクセスすると、以下のようなリコール情報の詳細が掲載されています。

Power Automate Desktop テキスト 抽出
引用:消費者庁のリコール情報詳細ページ

アマゾンでの販売では、リコール対象商品は出品制限対象であり、知らずに出品しているとアカウントに悪影響を及ぼす可能性があるため、RPAで以下のような自動化をつくってみたいと考えています。

  1. 受信したリコール情報新着メールの本文テキスト情報を取得
  2. メール本文に記載されたURL(リコール商品詳細ページ)を抜き出す
  3. 抜き出したURLにアクセス
  4. リコール商品詳細ページの「JANコード:xxxxxxxxxxxxx」の箇所を取得してファイルに保存

リコール情報は平日ほぼ毎日更新されており、リコール情報の新着メールも数多く受信します。

自社の出品商品の中に、出品制限対象である「リコール対象商品」が無いか把握するためには、商品名のようにゆらぎのある情報ではなく、商品を一意で検索できるJANコードを使う方が正確で手間もかかりません(※出品商品情報にJANコードが無い・登録されていない場合は除く)

まずは、リコール新着情報のメール本文からリコール商品詳細ページのURLを抜き出すところから始めてみます。

テキストを抽出するアクションを追加する

先の記事で作成済みの、メール本文テキストの取得フローにアクションを追加していきます。

[テキスト抽出のアクションを追加]

  • 1

    作成済みのメール本文テキスト取得のフローを開く

    Power Automate Desktop テキスト 抽出

  • 2

    抜き出すテキスト情報の事前処理(エスケープテキスト)

    テキスト情報を抜き出すために正規表現(※)を利用します。今回抜き出すテキスト情報が「URL」のため、「スラッシュ(/)」や「ドット(.)」などの特殊文字が含まれており、あらかじめ事前処理(エスケープ処理)する必要があります。

    正規表現のエスケープテキスト」アクションを、最初の「メッセージを表示」アクションのすぐ後にドラッグ&ドロップします。

    Power Automate Desktop テキスト 抽出

  • 3

    エスケープするテキストを指定

    設定ウィンドウがポップアップします。

    今回抽出するリコール詳細情報のURLは共通で「https://www.recall.caa.go.jp/result/」で始まるURLとなります。この共通箇所となるURLを指定します。

    Power Automate Desktop テキスト 抽出

  • 4

    エスケープ処理のアクションが追加される

    URLのエスケープ処理のアクションが追加されると同時に、エスケープ処理済みテキストが保存されるフロー変数「EscapedText」が追加されます。

    Power Automate Desktop テキスト 抽出

  • 5

    「テキストの解析」アクションの追加

    テキストを抽出するアクションを追加します。

    テキストの解析」アクションを「正規表現のエスケープテキスト」アクションのすぐ後にドラッグ&ドロップします。

    Power Automate Desktop テキスト 抽出

  • 6

    「テキストの解析」アクションの詳細設定

    ポップアップが開きます。

    「解析するテキスト」にある[ x ]をクリックして、「CurrentItem」のプロパティを表示させます。

    Power Automate Desktop テキスト 抽出

  • 7

    解析するテキストに「CurrentItem」の「.BodyText」を選択

    「解析するテキスト」にメール本文のテキスト情報が入る「CurrentItem」の「BodyText」値を選択します。

    Power Automate Desktop テキスト 抽出

  • 8

    「検索するテキスト」を選択する

    「検索するテキスト」に、フロー変数「EscapedText」を選択します。既に「EscapedText」には「https://www.recall.caa.go.jp/result/」をエスケープ処理したものが格納されています。

    Power Automate Desktop テキスト 抽出

  • 9

    その他の設定

    テキストを解析するための、その他の設定を追加して保存します。

    • 「%EscapedText%」の後に半角で「.*\r」を追加入力します (※注「\」を入力しても画面上は「」で表示されます)
    • 検索には「正規表現」を使う
    • メール本文の最初から解析する(解析の開始位置「0」から)
    • メール本文には複数のURLが記載されるので「最初の出現箇所のみ」はOFF(ONだと最初のURLのみ抽出される)
    Power Automate Desktop テキスト 抽出

  • 10

    「テキストの解析」アクションの追加を確認

    「テキストの解析」アクションが追加されます。

    「テキストの解析」アクションのコメントに記載されている通り、フロー変数「Matches」に、見つかった一致(今回の場合はリコール詳細情報のURL)が、リスト(配列)で格納されます。

    Power Automate Desktop テキスト 抽出

完成したテキスト抽出フローの実行

完成したフローを実行してみます。

本フローは消費者庁のリコール情報のメールサービスを処理することを目的に作成したものです。

フローの実行結果を確かめるには、未読のリコール情報メールが最低1通受信されていることが必要です。既読のメールしかない場合は、未読に戻すなどしてからフローを実行してください。

[フローの実行]

  • 1

    フローの開始

    フローを開始します

    Power Automate Desktop テキスト 抽出

  • 2

    メール本文のテキスト表示

    まず新着リコール情報のメール本文テキストが表示されます。

    今回追加したアクションにより、このメール本文からリコール詳細情報のURLのみを抽出します。

    確認して「OK」をクリックします。

    Power Automate Desktop テキスト 抽出

    「OK」をクリックした後は、今回追加したアクションが順次実行されていきます。

  • 3

    フローの実行完了後にフロー変数「Matches」を確認

    フローの実行が完了すると、フロー変数「Matches」にメール本文から抽出されたURLが格納されます。

    「Matches」をダブルクリックすると、格納されている情報が確認できます。

    Power Automate Desktop テキスト 抽出

  • 4

    「Matches」の詳細表示

    「Matches」はリスト形式(配列)で複数のテキスト情報を格納しています。

    メール本文にあったリコール情報の詳細ページURLが複数「Matches」に格納されているのが確認できます。

    「詳細表示」をクリックすると、各URLが表示されます。

    Power Automate Desktop テキスト 抽出

  • 5

    抽出された各テキスト情報(URL)の詳細

    抽出された各URLが確認できます。

    このURLをブラウザで表示させると、リコール情報の詳細ページにアクセスできます。

    Power Automate Desktop テキスト 抽出

以上で、メール本文から任意のテキストを抽出することが出来ました。

後日別の記事で、抽出したURLにアクセスし、そのページにある情報を取得するアクションを追加予定です。

Power Automate Desktopでのテキスト抽出と正規表現について

今回メール本文から任意のテキストを抽出するために「正規表現」を使いました。

リンク

「正規表現」を使うことで、URLのような複雑な文字列の組み合わせだけを抽出することが出来たりします。

RPAを使って自動化をするにあたって、何らかのテキスト情報を扱う必要がある場合、正規表現の利用方法を知っておくと自由度が格段に上がります。

Microsoft Power Automate Desktopで利用できる正規表現は「.NET」の正規表現になります。

「テキストの解析」アクションと正規表現を組み合わせることで、他にも様々なテキストから欲しい箇所のみを抽出することが可能になります。

Power Automate Desktop 何ができるか?

Power Automate Desktopとは、データの収集・整理・加工などパソコンで操作している手順を記録して、業務効率につながるアプリを開発できる製品です。

Powerautomate Desktopの改行コードは?

Power Automate Desktop には、タブや改行を表すコードがない。 改行コードは「テキストに行を追加」で挿入できる。 ただこのステップで追加されるのは \r\n であり、 \n だけ追加することはできない。

Power Automate CSVの改行コードは?

デコードした結果得られる値が改行コードを表す「r\n\」です。 手入力で「r\n\」を入力してもPower Automate改行コードとして認識できないため「decodeUriComponent('%0D%0A'))」という指定をしています。