Chromeのバージョン互換でSelenium出来ない時

ChromeとChromeDriverの互換性 Seleniumでブラウザ(Chrome)の自動操作をしようとすると、ChromeDriverを入れるかと思います。ChromeDriverとはブラウザをプログラムで制御するためのライブラリの様なものです。(と認識しています) ただしご存じの通りChromeの公式アップデートは頻繁に起こります。するとChromeDriverがChromeブラウザの更新に追いつかず、せっかくスクレイピングするプログラムを作成してもエラーを吐く場合があります。 前回こちらでPythonからSeleniumを行うプログラムを作成しましたが、気がついたらChromeとChromeDriverの互換性に問題が生じてしまいエラーを吐いていました。 selenium.common.exceptions.SessionNotCreatedException:... 御覧になる | 御シェアする

PythonでSeleniumする

はじめに PythonとSeleniumを使いながらちょっぱやでブラウザ操作の自動化をしてみます。Seleniumを使うとログインしたりスクショを撮ったり等の操作を自動化出来るので便利です。 準備 PythonとかChromeブラウザはインストールされている前提です。 SeleniumとChromeブラウザをプログラムから操作するためのChromeDriverをインストールします。 $... 御覧になる | 御シェアする

PythonとSeleniumでスクショをS3にアップロードするLambdaを作る

はじめに 基本的にはこちらを参考にしています。 Lambda関数作成 serverless-chroniumダウンロード Lambdaの様なサーバレスで動かすヘッドレスなブラウザです。 $ mkdir -p bin/ $ curl -SL... 御覧になる | 御シェアする

PythonとSelenimumで検索結果のスクリーンショットを撮る

準備 Pythonに関しては3.7.9がインストールされているという前提です。Pyenvでバージョンを切り替えることをお勧めします。まずはPythonでSeleniumを扱えるように下記のコマンドを実行して下さい。 $... 御覧になる | 御シェアする

【CloudWatch/Lambda/Slack/AWS CLI】を使ってEC2を監視・通知・停止する

はじめに 今回やりたい事は、 毎日23:30にInstance自動停止アラートを通知するCloudWatchLambdaSlack毎日23:59にInstanceを自動停止するCloudWatchLambdaSlackから自動停止ルールを制御するSlackAWS... 御覧になる | 御シェアする

RabbitMQでワークキューを使う #2

はじめに 前回はRabbitMQでメッセージキューイングシステムを構築し非同期処理を実装しました。今回は前回のプログラムを少し改修して並列処理を実装します。 並列処理用にプログラム改修 差し当たっては結果を見やすくするために送信プログラムのメッセージを「Hello... 御覧になる | 御シェアする

ご注文はRabbitMQで並列処理ですか? #1

目標 今回の目標はRabbitMQを使い並列処理クラスタを構築する事です。昨今のスパコンは一つのCPUの性能を高めるよりも、汎用的なCPUを大量に並べて処理能力を上げる方が一般的です。 例えば10秒掛かる処理が10個あるとして、1台の計算機で全てやろうとすると100秒掛かりますが、2台の計算機なら50秒で終わりますし、10台の計算機なら10秒で終わります。つまり並列処理をさせることで全体の計算に掛かる時間を短くするということを実現したいと思います。 まずメッセージングミドルウェアとは RabbitMQはメッセージングミドルウェアと呼ばれていますが、メッセージングミドルウェアというのは異なるアプリ同士が双方向に情報をやり取りするためのソフトウェアのことです。MOM(Message-oriented-middleware)を使うと次のような良い事があります。※日本語だとメッセージ指向ミドルウェアといいます。 メッセージキューイングを利用した非同期処理 仮にMOMを使わないECサイトのようなWebアプリを作ったとします。その場合ざっくりとですが次の様な流れになるかと思います。 エンドユーザは商品をカートに入れ、フォームを入力して購入ボタンをクリックします。購入情報が管理サーバに送信され、ユーザ認証やデータ書き込みなどのDBとやり取りをしたり、在庫チェックや発送準備を行います。2.の処理が完了したことを確認しエンドユーザにレスポンスを返して購入が完了する。 これの何処に問題があるのかと言いますと、2.の処理中エンドユーザはひたすら待ち続けなければならないという点です。 そこでキューというデータ領域に購入情報をストアさせておき、順次管理サーバが処理していくというのが非同期処理の良い所です。 保守性の高い開発 又、MOMを利用するとサービス毎に開発が可能になります。ここでもECサイトを例にしますが、1.と2.の処理部分を順番に作っていくよりも、「1.部分は私達が作ります。最終的に~の様なメッセージを送りますので」「承知しました。ではそのメッセージに合うように2.部分は私達が作ります」と言う方が効率が良いですし、汎用性もあります。 他にもリスクを一元管理しないことによる耐障害性向上など様々なメリットがあります。 構築 RabbitMQインストール #... 御覧になる | 御シェアする

タイピング速度に連動して音楽の速度が変化するやつ

今回はやってみた系 今回は普段と違い、エンターテイナー色強めの記事にしています。きっかけは友人にハッカソンに誘われたときに見た(未参加)、ハッカソンのダイジェスト動画に感化されたからです。 今回作りたいものは、「キーボード入力の速度に連動して、音楽の再生速度が変化するプログラム」です。 開発環境 Linux(CentOS7)Python3.6VLC #... 御覧になる | 御シェアする