Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SeleniumとPhantomJSで自動化サーバーレス(RPALT vol.1 LT)

897 views

Published on

プログラム言語で構築されたプログラミングベースの自動化(非RPA)なお話。RPAによって自動化のしきいは下がる。でもRPAを導入できなくて技術があるならこういう手も。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

SeleniumとPhantomJSで自動化サーバーレス(RPALT vol.1 LT)

  1. 1. Seleniumと PhantomJSで 自動化サーバーレス RPALT vol.1 2018/3/29 山下 光洋
  2. 2. 自己紹介 山下光洋 @yamamanx Blog : www.yamamanx.com ・ソフトウェア開発会社でIBMさんのBP ・ナイトレジャー会社,エネルギー会社で情シス ・AAI(AWS認定インストラクター)、 IT Terchnical Training Engineerはじめました@Trainocate ヤマムギ(勉強会)主催 , JAWS-UG OSAKA, JAWS-UG IoT関西支部, kintone Cafe大阪,JP_Stripes Osaka, The八番街ベース 緑のLv16 Lv35
  3. 3. 会社紹介
  4. 4. から2017/10/1に社名変更 グローバルナレッジネットワーク 会社紹介
  5. 5. 会社紹介 「トレーニング」分野の 「先導者」として飛躍するこ とを目指して名付けました (オフィシャルサイトより)
  6. 6. でも、とりあえずは、 「トレイ の 毛糸」 と覚えてください (読み方はトレノケートですが) 会社紹介
  7. 7. 写真にすると こんな感じです 会社紹介
  8. 8. 今年もたくさん呑ませていただいております
  9. 9. RPA?? Robotic Process Automation???
  10. 10. RPA?? Robotic Process Automation???
  11. 11. RPA?? Wikipediaより RPAは、画面上のアプリケーション、システム画面を識別し、人間と同じように 操作を行うことができるようなソフトウェア(ソフトウェアロボット)によって 実現されている。ソフトウェアロボットは伝統的なプログラム言語で構築される わけではなく、事前に設定された実行手順に従って動作する[2]。RPAが目指すの は伝統的なIT部門スタッフ向けのプログラミングベースの自動化ではなく、ITナ レッジの少ない業務部門スタッフ向けの直観的な操作で構築可能な自動化である。 ソフトウェアロボットは仮想知的労働者で、業務部門のスタッフが未経験の新入 社員をトレーニングするように、直観的な方式で短時間でトレーニング(構築) することが可能である。
  12. 12. RPA?? 業務部門スタッフ向けの 直観的な操作で構築可能な自動化
  13. 13. RPA?? 業務部門スタッフ向けの 直観的な操作で構築可能な自動化 技術は標準化されてなんぼ
  14. 14. RPA?? 今日お話すること プログラム言語で構築された プログラミングベースの自動化
  15. 15. 自動化とは ・人の手を介さずに行うこと。 ・ソフトウェアが出来ることは、 自動化が可能。 ・人が画面に対して行っていることは、 自動化が可能。
  16. 16. 自動化のメリット ・整合性が高まる →人為的なミスを回避 ・効率性が高まる →実作業に人力が不要 ・スピードが高まる →人の操作よりも迅速
  17. 17. 現場に起こること 1. ソフトウェアに向かって入力、転記 2. ミスが起こる 3. チェックが増える 4. 残業が増える 5. 人が辞める 6. 人が入るが手作業の多さに不慣れ 7. ミスが起こる 8. チェックが増える 9. 残業が増える 10.人が辞める(5に戻る)
  18. 18. 現場に起こること 1. 自動化する 2. ミス起こらない 3. チェック増えない 4. 残業増えない 5. 人辞めない? 6. 新しい人も仕事しやすい そして人の業務時間は短縮されて、 1日6時間、週4日勤務が当たり前な世の中も。。
  19. 19. いいことばかりなのになぜ自動化進まないか 1. 技術が必要 1. ミスがあったときの責任部署が移管する 1. 作業のブラックボックス化
  20. 20. これまでにやってきた自動化 1. 画面からデータを読み込んでデータベース化 2. データベース間の連携 3. 個人情報の名寄せ 4. メール報告(SendGridAPI) 5. DM送信(SendGridAPI) 6. イレギュラーのパラメータ化 7. 祝日の自動取得(GoogleCalendarAPI) 8. サーバーの自動停止/起動 9. OCRは諦めた。。。。。。。などなど
  21. 21. これまでにやってきた自動化 Selenium ブラウザの自動操作ライブラリ PhantomJS webkitベースのヘッドレスブラウザ AWS Lambda ステートレスなコード実行環境 kintone ノーコード、ローコードなwebアプリ開発プラットフォーム
  22. 22. Selenium ブラウザの自動操作ライブラリ #起動 browser = webdriver.Chrome() browser.get(‘http://example.com’) #ログイン id_elem = browser.find_element_by_id(id) pass_wd_elem = browser.find_element_by_id('password') id_elem.send_keys(‘user-a’) pass_wd_elem.send_keys(‘password’) pass_wd_elem.submit()
  23. 23. PhantomJS webkitベースのヘッドレスブラウザ 自動化プログラムのサーバーレス化(脱デスクトップ)に有効 user_agent = ( "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36" ) dcap = dict(DesiredCapabilities.PHANTOMJS) dcap["phantomjs.page.settings.userAgent"] = user_agent dcap["marionette"] = True dcap["phantomjs.page.settings.javascriptEnabled"] = True browser = webdriver.PhantomJS( service_log_path=os.path.devnull, executable_path="./phantomjs", service_args=['--ignore-ssl-errors=true', '--load-images=no', '--ssl-protocol=any'], desired_capabilities=dcap )
  24. 24. AWS Lambda ・サーバーレス環境でコードを実行 ・月100万リクエストまで無料 ・1アカウントで1000同時実行可能 ・128MB~3GB ・最大5分間 ・Python,Java,Node.js,C#,Go
  25. 25. kintone ・webデータベース ・D&Dで簡単実装 ・JavaScriptで便利なカスタマイズ可能 ・APIで外部システムと便利に連携 ・業務UI作らなくていいのでIT部門は 非常に楽だし、なんなら事業部門が作 れる
  26. 26. 全体像 解説とソースコード https://www.yamamanx.com/kintone_app_manage_app_inventory/
  27. 27. デモ
  28. 28. ご清聴ありがとうございました。 Special Thanx to…..

×