見出し画像

【ミートアップ開催レポート】mirameet vol.21!Goを使ってWeb予約を自動化してみよう!

こんにちは!
mirameet vol.21のテーマは「Goを使ってWeb予約を自動化してみよう」でした!
参加してくださった皆様ありがとうございます!

当日の様子


当日は秋葉原事務所からzoomにてお届けしました!
スピーカーは長田さん、司会はベルさん!
そして今回のタイムスケジュールは下記となります!

スクリーンショット 2021-08-30 113311

解説編

スクリーンショット 2021-08-30 114747

解説編ではGoとは何か、Goで出来ることなどの解説をじっくりと行いました。
おまけでGoのキャラクターGopher君についての解説も少し、、
意外な動物が元となっていましたw(何の動物か気になる人は調べてみてください笑)

ハンズオン

スクリーンショット 2021-08-30 115312


それでは!お待ちかねのハンズオンです。
今回はDocker、go、agoutiを使用し、ANAの飛行機を予約するのを自動化するのをゴールとして行いました。
※実際には予約完了までは行わず手前で完了とします。

ハンズオンとしては下記のような構成となっています。
1.Dockerの準備
2.Goのプログラム作成
3.ANAの予約ページを自動化する

1.Dockerの準備
まずプログラムをGithub上からダウンロードします。
ダウンロードしたらDockerのイメージのビルドをしコンテナを起動します。
コンテナが正常に起動していることが確認できたらDockerの準備は完了です!

スクリーンショット 2021-08-30 142116

2.Goのプログラム作成
まずは Go が正しく実行できていることを確認するためにメッセージを出力するところまで確認し、それが出来たらファイルを編集していきます。
コンテナに接続しGoを実行したら、Google Chromeを起動し、スクリーンショットを撮ります。
方法としてはスクリーンショットフォルダを作成し、そこにスクリーンショットが作成されていればOKです!

スクリーンショット 2021-08-30 142709

3.ANAの予約ページを自動化する
最後にいよいよ本題の予約ページの自動化に入っていきます。
main.goファイルを編集し、ANAのページで予約出来るようコードを修正します。
実際のANAのURLにアクセスし、検索ボタンを押下すると、区間ページへ移動できます。 該当ページにてANAの区間検索ページ要素をChromeの検証ツールで特定します。

スクリーンショット 2021-08-30 143529

搭乗日のXpath、値段、電話番号などを書き換えていきます。
書き換えたらコンテナで実行しscreenshotフォルダ内にana-11.pngまでのキャプチャが撮れていることを確認出来たら完成です!
厳密に組む場合はもっとifとerrは駆使することになると思いますが、どちらかというとSelenuimの側面が強い感じとなりました。

QAタイム

今回はサクサクと進んでいったので質疑応答時間を長めに設けました。

質疑応答ではこんな質問があがりました。

・並列処理・並行処理の違いを詳しく知りたい
・サイト側でのログインとかも似たような処理か
・サイト側でスクレイピング対策をされているというお話があったが、どういう対策がとられることが多いのか?     等々
他にも質問を頂けたのですが今回は割愛させていただきます。。
たくさんのご質問ありがとうございました!

最後にちょこっと裏話

実は今回のテーマ、もともとANAの予約を取るためではなく、元ネタがありまして、弊社社員が子供の病院予約を楽に行いたいと思った際に作ったのが元ネタとなっております。
あったらいいなを自分で作れちゃう上に仕事にも活かせるところ、エンジニアの楽しいところですよね( *´艸`)

質疑応答ではそんな裏話も聞けちゃうのでぜひ質問してみてください。
今回ご参加いただいた皆様、本当にありがとうございました!

さて、次回のテーマは「Python×DjangoのWEBサイト作成&テスト自動化を通して実践スキルを学ぼう!」です!
気になる方は画像をクリックすると詳細確認&予約が出来ます!

スクリーンショット 2021-08-30 144230

・Djangoをこれから使ってみたい/使い始めてる人
・フレームワークを使用して簡単にサイト構築してみたい人
・テストも楽して実行したい人
におすすめなイベントとなっております。

今回のイベントmirameetは、miracleave主催のコミュニティ
miracle rabbits(ミラクル ラビッツ、通称ミララビ)のイベントです。

毎月3回、幅広いテーマでmirameetというミートアップを開催しています。
ミートアップ以外にも本コミュニティでは、
・もくもく会の実施
・無料で見ることができる開発ナレッジ
・参加エンジニア同士でQ&A
・セミナーやイベント
など、続々とコンテンツを増やしていく予定です。

参加いただいた皆様が楽しみながら、スキルアップできる場になればと考えています。皆様のご参加お待ちしております!


この記事が気に入ったらサポートをしてみませんか?