京急とNode-REDで始める俺得RPA

 京急とNode-REDで始める俺得RPA

Bb68ba1b1bc26b73568a5cfd197f8e49?s=128

pokiiio

May 24, 2019
Tweet

Transcript

  1. 京急とNode-REDで始める 俺得RPA ポキオ

  2. ポキオ? • @pokiiio • R&D園児にゃー • 2児の父 • https://pokiiio.github.io/ •

    https://relativelayout.hatenablog.com
  3. 京急が好き 京急はネ申 (個人的な見解です) 京急ファミリー鉄道フェスタ 2019に行ってきまし た

  4. はい

  5. RPA

  6. R・P・A! R・P・A! • ロボティック・プロセス・オートメーション ◦ 認知技術(ルールエンジン・機械学習・人工知能等)を活用した、主にホワイトカラー業務 の効率化・自動化の取組みである。人間の補完として業務を遂行できることから、仮想知的 労働者とも言われている。また、デスクトップ作業のみに絞ったものをロボティック・デス クトップ・オートメーションと呼び、 RPAと区別することもある。

    ◦ RPAが目指すのは伝統的な IT部門スタッフ向けのプログラミングベースの自動化ではなく、 ITナレッジの少ない業務部門スタッフ向けの直観的な操作で構築可能な自動化である。 ◦ https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%9C%E3%83%86%E3%82%A3%E3 %83%83%E3%82%AF%E3%83%BB%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%83%BB %E3%82%AA%E3%83%BC%E3%83%88%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83 %B3
  7. 雑な理解 • RPA = (なるべく※)ノンコーティングで出来るような自動化 ※ちょっとだけコーディングしちゃいました。ちょっとだけ・・・。

  8. ここでNode-RED

  9. Node-REDとは? • https://nodered.jp/ • ノードとノードを繋ぐだけで処理やフローを設計・実行できる • ノードにはいろいろな種類があり様々な処理が可能 • Node.js上で動作 /

    Raspberry Piにプリイン / enebularなどを利用
  10. こんな感じのUI

  11. 他サービスとの連携が簡単に可能

  12. ノードライブラリで広がる可能性 https://flows.nodered.org/

  13. ノンコーティングで プログラミングできるNode-REDを使って 身近なRPAができないかやってみた

  14. まずはNode-REDに京急ノードが なかったので作ってみた

  15. https://flows.nodered.org/node/node-red-contrib-keikyu

  16. 出来ること • 京急の運行情報ページから現在の運行情報をパース

  17. ちょっぱやで京急の運行情報を取得可能

  18. 応用例:運行情報だけを表示するページ output先をLINEとかSlackに変更可能 ちょっとだけ夢が広がります

  19. https://enebular.com/discover/flow/a3e88d36-f227-4aea-be21-339b5463154f enebularでフローを公開中です

  20. • 汎用性なくね? • JRは見られないの? • Webページ見ればいいじゃん?

  21. 任意のWebページの スクリーンショットを撮影する ノードを作ってみた

  22. https://flows.nodered.org/node/node-red-contrib-web-page-screenshot

  23. 出来ること • 予め設定したWebページのスクリーンショットを撮影 • Base64でエンコードしたStringを返す • ページ全体のスクリーンショット以外にも IDやClassを指定することで一部分だけ撮影することも可能

  24. 応用例: 3路線の運行情報ページのスクリーンショットを 撮影しRaspberry Pi上に一括表示 京急線運行情報は京急HPから その他の路線はYahoo!から取得 ChromiumのKioskモードで表示

  25. あまり大きな声では言えませんが • 会社とかでも使えます! ◦ 社内イントラ上のページを定期的に撮影したり・・・ ◦ 勤怠のページを(ry ◦ 悪いことに使っちゃだめですよ!

  26. サマリ • Node-REDでなるべくコーディングしないで、俺得RPAをやってみた • さまざまなノードを使いこなせばいろいろ自動化できそう • 任意のWebページの特定の部分だけのスクリーンショットが撮れると いろいろやれることは多そう • 今回は出力先がWebページだけですが、他の出力先も設定可能

    • まずは身近なところから、Let's RPA!
  27. Appendix 1:Puppeteerを使っています • スクショ撮影にはNode.jsのモジュールであるPuppeteerを使用 • ChromiumのHeadlessモードをいい感じにWrap • どちらかというと、UIテストとかそっちにも使える

  28. Appendix 2:Puppeteerは曲者 • HeadlessなChromiumを使うために、PuppeteerのDependenciesに Chromiumが含まれる • このChromiumはx86用で、Raspberry PiなどのARMアーキでは使えない • 別途ARM向けでHeadlessモードが利用可能なChromiumをDL・Installし

    ておく必要がある • 最新のRaspbianにはいい感じのChromiumが含まれている
  29. Appendix 3:PuppeteerはHerokuで使うのは面倒 • ARMじゃないし、Herokuならバリバリ使えるかなと思ってた • DefaultのNode環境だと依存関係を満足できずPuppeteerは使えない • Puppeteer向けに作られたBuild PackをHerokuに焼べる必要がある

  30. Thank you!