開拓馬の厩スマートフォン用の表示で見る開拓馬の厩いろいろやるこの広告は、90日以上更新していないブログに表示しています。Lambdaを初めて使ったので忘備録を兼ねて書きます今回書いたコードはここで見れますAmazonコインの価格変動1年ぐらい前からHearthstoneというデジタルカードゲームにハマっています。Hearthstoneは課金でカードパックを買えるのですが、Amazonアプリストア版のAndroidアプリを使用すると、Amazonコインでの支払いが可能で、クレジットカードで直接買うよりより少し安くなります。そんなAmazonコインですが、実は日々値段が変動しているみたいです。破滅に向かって2011↑の記事を見た感じ、10000コインが8100円のときにまとめ買いしておくとおトクなようです。Amazonコインが安い日を見逃さないために、今回はpythonでwebスクレイピングを行いコインの価格を自動で追跡するスクリプトを作成しました。Lambdaで自動化しました。Amazonコインの価格を自動で取得するPythonでAmazonコインの価格を追うスクリプトを書きました。venvを用いて仮想環境を作成し、必要となるライブラリをインストールします。あり、価格はid=priceblock_ourpriceのspanタグに記載されているので、以下のようなスクリプトで価格を取得できます。Notifyを使って自分のLINEアカウントに通知することにしました。Notifyのwebページでアクセストークンを取得し、環境変数LINE_NOTIFY_TOKENに値を書き入れておきます。fishの場合そして、以下のスクリプトを実行するとLINEに通知が届きます。LINEの指定したトークルームに通知が来るこれで、script.lambda_handler関数を実行することで、Amazonコインの価格がLINEに届くようになりました。Lambdaを用いて自動化します。Lambdaを用いて自動化します。今回は毎朝8時に実行させるようにします。最初に作成したスクリプトをzipにまとめます。Lambdaは使用するスクリプトをzip形式でアップロードする方式になっているためです。このとき注意しなければならないのは、標準ライブラリ以外のライブラリも一緒にzipにまとめる必要がある点です。デプロイ用のディレクトリを作成し、そこに今回のスクリプトとライブラリをすべて設置し、zipにまとめることにします。../これで、作業ディレクトリにpackage.zipが作成されます。動作確認として、以下のようなコマンドを実行したらスクリプトが正しく動作することを確認してください。Lambdaの設定パッケージが完成したので、早速Lambdaのセッティングをしてみます。Lambdaの管理ページから新しい関数を作成します。Lambdaアクセス権限」を使用します。他は適当に入力してかまいません。次に、先程作成したpackage.zipをLambdaにアップロードします。このとき、ハンドラには[pythonのファイル名].lambda_handlerを指定します。Notifyのアクセストークンを入力します。最後にタイムアウトの値を少し大きめの値に変更しておきます。*3メモリは最小の128mbで足りるのでデフォルトのままでかまいません。次に通知が来るタイミングを指定します。Eventsを指定します。これで毎日グリニッジ標準時の23時、つまり日本時間の8時にスクリプトが実行されるようになりました。Lambdaによる自動化を行いました。今回、個人的につまずいた点は以下のとおりです。今後の課題として、価格がn円以下のときのみ通知を流すようにしたり、TwitterやDiscordに自動投稿させたりなんかをやりたいと思っています。今回のプロジェクトはこちらのリポジトリで管理してあります。よかったらforkしてみてください。改善点などあればissueに書いてくださると助かります。追記このアプリはしばらく前から放置しており、コードが古くなっています。脆弱性が発見されているようなので、requirements.txtをそのままコピペしないようご注意ください。*1:後々、価格がn円以下なら通知するといった条件分岐をしやすくするために結果をint型で返すようにした*2:一応、webページで直接コードを書く機能もある。zipでうpしたファイルをweb上で微修正するということも可能。プロンプトをうるさくしてみた前回まではPythonに新たな予約語を追加してきました。月別アーカイブはてなブログをはじめよう!pf_siedlerさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。