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

123 Views

November 12, 22

スライド概要

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

profile-image

 開発ベンダーに5年、ユーザ企業システム部門通算9年を経て、2018年よりトレノケート株式会社でAWS Authorized InstructorとしてAWSトレーニングコースを担当し、毎年1500名以上に受講いただいている。プロトタイプビルダーとして社内の課題を内製開発による解決もしている。 AWS認定インストラクターアワード2018・2019・2020の3年連続受賞により殿堂入りを果たした。 APN AWS Top Engineers、APN ALL AWS Certifications Engineers、AWS Community Buildersに数年にわたり選出。 個人活動としてヤマムギ名義で執筆、勉強会、ブログ、YouTubeで情報発信している。 その他コミュニティ勉強会やセミナーにて参加、運営、スピーカーや、ご質問ご相談についてアドバイスなどをしている。

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Seleniumと PhantomJSで 自動化サーバーレス RPALT vol.1 2018/3/29 山下 光洋

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.

会社紹介

4.

会社紹介 グローバルナレッジネットワーク から2017/10/1に社名変更

5.

会社紹介 「トレーニング」分野の 「先導者」として飛躍するこ とを目指して名付けました (オフィシャルサイトより)

6.

会社紹介 でも、とりあえずは、 「トレイ の 毛糸」 と覚えてください (読み方はトレノケートですが)

7.

会社紹介 写真にすると こんな感じです

8.

今年もたくさん呑ませていただいております

9.

RPA?? Robotic Process Automation???

10.

RPA?? Robotic Process Automation???

11.

RPA?? Wikipediaより RPAは、画面上のアプリケーション、システム画面を識別し、人間と同じように 操作を行うことができるようなソフトウェア(ソフトウェアロボット)によって 実現されている。ソフトウェアロボットは伝統的なプログラム言語で構築される わけではなく、事前に設定された実行手順に従って動作する[2]。RPAが目指すの は伝統的なIT部門スタッフ向けのプログラミングベースの自動化ではなく、ITナ レッジの少ない業務部門スタッフ向けの直観的な操作で構築可能な自動化である。 ソフトウェアロボットは仮想知的労働者で、業務部門のスタッフが未経験の新入 社員をトレーニングするように、直観的な方式で短時間でトレーニング(構築) することが可能である。

12.

RPA?? 業務部門スタッフ向けの 直観的な操作で構築可能な自動化

13.

RPA?? 業務部門スタッフ向けの 直観的な操作で構築可能な自動化 技術は標準化されてなんぼ

14.

RPA?? 今日お話すること プログラム言語で構築された プログラミングベースの自動化

15.

自動化とは ・人の手を介さずに行うこと。 ・ソフトウェアが出来ることは、 自動化が可能。 ・人が画面に対して行っていることは、 自動化が可能。

16.

自動化のメリット ・整合性が高まる →人為的なミスを回避 ・効率性が高まる →実作業に人力が不要 ・スピードが高まる →人の操作よりも迅速

17.

現場に起こること 1. ソフトウェアに向かって入力、転記 2. ミスが起こる 3. チェックが増える 4. 残業が増える 5. 人が辞める 6. 人が入るが手作業の多さに不慣れ 7. ミスが起こる 8. チェックが増える 9. 残業が増える 10.人が辞める(5に戻る)

18.

現場に起こること 1. 自動化する 2. ミス起こらない 3. チェック増えない 4. 残業増えない 5. 人辞めない? 6. 新しい人も仕事しやすい そして人の業務時間は短縮されて、 1日6時間、週4日勤務が当たり前な世の中も。。

19.

いいことばかりなのになぜ自動化進まないか 1. 技術が必要 1. ミスがあったときの責任部署が移管する 1. 作業のブラックボックス化

20.

これまでにやってきた自動化 1. 画面からデータを読み込んでデータベース化 2. データベース間の連携 3. 個人情報の名寄せ 4. メール報告(SendGridAPI) 5. DM送信(SendGridAPI) 6. イレギュラーのパラメータ化 7. 祝日の自動取得(GoogleCalendarAPI) 8. サーバーの自動停止/起動 9. OCRは諦めた。。。。。。。などなど

21.

これまでにやってきた自動化 Selenium ブラウザの自動操作ライブラリ PhantomJS webkitベースのヘッドレスブラウザ AWS Lambda ステートレスなコード実行環境 kintone ノーコード、ローコードなwebアプリ開発プラットフォーム

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.

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.

AWS Lambda ・サーバーレス環境でコードを実行 ・月100万リクエストまで無料 ・1アカウントで1000同時実行可能 ・128MB~3GB ・最大5分間 ・Python,Java,Node.js,C#,Go

25.

kintone ・webデータベース ・D&Dで簡単実装 ・JavaScriptで便利なカスタマイズ可能 ・APIで外部システムと便利に連携 ・業務UI作らなくていいのでIT部門は 非常に楽だし、なんなら事業部門が作 れる

26.

全体像 解説とソースコード https://www.yamamanx.com/kintone_app_manage_app_inventory/

27.

デモ

28.

ご清聴ありがとうございました。 Special Thanx to…..