M1チップMacbook AirでPythonを使ってサイトに自動ログイン。

Python超入門

Pythonを使って、サイトにログインすることができます。

M1チップのMacbook Airで試した事例をまとめてみました。

M1チップのMacでのPython環境をつくる

利用したパソコンはM1チップのMacBook Air
M1チップとIntelで異なる部分もあり、M1チップでやってみたことをお話します。

まずはPythonでプログラミングをする環境を用意する必要があります。

Pythonの準備

まずはPythonのソフトをインストールします。

こちらの公式サイトからダウンロードしましょう。

GOforITWelcome to Python.org

ダウンロード後、ファイルを開くとこのような画面が表示されますので、インストールしましょう。

GOforIT 1

FinderのアプリケーションからPythonのフォルダを見に行くと、このようなファイルができています。この中のIDLE(アイドル)というアプリをあとで使っていきます。
GOforIT

後述するHomebrewからもPython3をインストールすることもできます。わたしは先にやったので。

Terminal(ターミナル)を起動

MacのTerminalを検索して起動しましょう。Pythonを動かすために必要な環境のインストールをこのターミナルでやっていきます。

GOforIT

インストールしたので、最新のPythonになっているはずですが、最新にアップグレードする場合には、ターミナルに次のコマンドを入れて実行をします。

 

このような画面になれば、バージョンアップができています。

GOforIT 19

Homebrewをインストール

M1チップのMacでPythonを動かす場合、Intel版のMacとパス(保存先)が違います。
その設定をするためにHomebrewをインストールしました。

次にHomebrewのサイトにアクセスし、該当の部分をコピーし、

GOforIT 12
The Missing Package Manager for macOS (or Linux) — Homebrew

ターミナルに貼り付けて実行します。
GOforIT 5

しばらくすると、パスワードを聞かれます。Macのパスワードを入力しましょう。
GOforIT 4

このような画面になると、インストールが終わりです。

GOforIT 9

M1チップMac用にパスの設定変更

M1チップの場合、パス(接続先)が違うので、設定を変更しておく必要があります。

環境Pathを設定するには、ターミナルに次のようにコピーしましょう。「/Users/username/.zprofile」の部分は、それぞれ違うので、じぶんの設定に合わせる必要があります。

 

では、ここに何を入れるか?ヒントはHomebrewのインストールが終わった画面の中にあります。

最後のほうで英語が苦手ながらなんとか訳してみると「次のステップとして、パス(接続先)を変えるために2つのコマンドを入力してちょ」と書いてあります。その画面に答えがあります。
GOforIT 34

この部分に置き換えて実行しましょう。

実行した後に引き続き、

といれると、完了です。

インストールされているかを確認します。

と入力し、実行するとHomebrew 3.3.6といった表示になります。

GOforIT

これで初期設定は終わりです。なかなか敷居が高いです。

このあとは処理に応じてライブラリ(ソフトのイメージ)をインストールしていくことになります。

ブラウザを操作する準備

今回の事例は、サイトにログインするものです。

IDとパスワードを入力し、ログインのボタンをクリック。サイトにログインするという流れです。
GOforIT

それほど手間がかかるものでもないですが、人がやるよりは明らかに速いです。

Pythonでプログラミングすると、その後は.pyファイルをクリックするだけでログインできるようになります。

今度は、ネット上で入力したりクリックしたりするための準備です。

Seleniumをインストール

ネット上で操作するために、「Selenium」をインストールします。

ターミナルに

と入力しましょう。Seleniumがインストールできます。

ChromeDriverをインストール

Google Chrome対応のWebドライバーをインストールします。

現状のGoogle Chromeのバージョンと同じタイプのものが必要になるので、まずはChromeのバージョンを確認する必要があります。

Chromeの設定からChromeについてをクリックすると、現在のバージョンがわかります。チェックすると「96」になっています。
GOforIT 36

Google Chromeのドライバーをこちらからダウンロードしましょう。

Chromeのバージョンにあった「96」をクリックし、
GOforIT 37

M1を選び、ダウンロード、解凍してから、ドライバーを
GOforIT 38

この後に紹介するPython用の「.py」のファイルと同じ場所に格納しましょう。
GOforIT 39

これらはGoogleChromeをブラウザとして使っていることが前提なので、Chromeのアプリも必要です。

なければダウンロードしておきましょう。(SafafiやFirefoxの場合には設定が変わります。)

 

このあとにようやく、Pythonを動かすコードを書いていきます。

AutoBizに自動ログイン

Pythonを動かすためのコードを書いていきます。

スポットライト検索でid…と入力するとIDLEというアプリを見つけることができます。起動しましょう。

GOforIT

画面はAlfredというアプリを入れているので、ちょっと表示が違いますが、スポットライトで大丈夫です。

Macランチャーアプリ『Alfred』で効率化へ3歩前進 ゲームメイクの起点は検索窓から – GO for IT 〜 税理士 植村 豪 Official Blog

起動するとこのような画面が表示されます。

GOforIT 40

この画面でcommand+Nをクリックすると、右側のような画面が表示されます。コードはこちらに書いていき、実行結果、エラーがあれば左の画面に表示されます。

GOforIT

コードを書くツールはjupiternotebookなどもありますが、今回はシンプルにIDLEで解説します。

まずは、IDLEの環境設定から、
GOforIT

文字サイズ、フォントを変更しておきましょう。

GOforIT 41

今回、IDLEで右側の画面に書いたコードはこのようなものです。これを解説します。

ユーザーIDやパスワードは仮のものです。

Pythonを動かすコードの解説

まず最初のコードで先程インストールしたseleniumにあるwebドライバーを読み込んでいます。

これでブラウザを操作できるようになります。

次にChromeの起動です。

まず、そもそもの設定で解説しておきます。browserという変数を使って、先程インストールしたChromeドライバーを呼びだして、Chromeを起動しています。
GOforIT

「’/Users/gouemura/Dropbox/Python/chromedriver’」のようなパスやURL、文字は「’(Shift+7)」で囲む必要があります。

GOforIT 43
このパスを見つけるには、先程に格納したChromeドライバーのファイルを選択し、オプションキーを押しながら右クリックします。

GOforIT 39

そこでパスをコピーできます。上記はそれを貼り付けたもので、じぶんの環境のものに変更する必要があります。

これでChromeを起動することができますが、警告がでます。seleniumが新しくなり、書き方が変更になったとか。

GOforIT 21

それでこの部分を、

GOforIT

このような書き方に変えています。
GOforIT

このように書き換えて警告がでないようにしています。

次はサイトへのアクセス。サイトからurlをコピーして貼り付けます。上の行の「url」が変数。
すぐ下の「browser.get(url)」で引用しています。

GOforIT 44

最後は、サイトでのユーザー名とパスワードの入力、ログインボタンのクリック。

GOforIT

この動きをコードで書くために、場所を指定できるようなカギを見つける必要があります。(下記の’username’、’PASS’、’submit’の3つがそれです。)

GOforIT45

ユーザー名の場合を例に。Chrome画面を表示した状態でF12を押すと、このような検証の画面になります。左上のマークをクリックすると、

GOforIT 48

要素を選べるようになります。ユーザー名にカーソルを当てた状態でクリックすると、

GOforIT 49

該当のHTMLが表示されます。

その中からidやnameなどを探しましょう。idはないので今回は「name=”username”」とあるので、nameを使うことにします。これがカギになります。

HTML表示からコピーして、

GOforIT 51

ここに入れます。elementとは要素。usernameという要素を見つけてちょということです。

GOforIT 45

elem usernameを変数として、次の行でsend_keys(‘任意のID’)として入力するように伝えています。

次はパスワード。同じようにHTMLから今度はidが見つかったので、idで設定をしてみます。id=”PASS”です。

GOforIT 52

今回はidで指定しているので、by_nameではなく、「element_by_id(‘PASS’)」にする必要があります。
GOforIT 46

今回は関係ないですが、もしnameで指定するなら「element_by_name(‘password’)」となります。

最後はボタン。要素にカーソルをあてると、

GOforIT

今回もidはなく、name=”submit”があったので、これを使います。

GOforIT 46

ということで。element_by_name(‘submit’)とし、その下で「element_login_btn.click()」として、クリックをするようにつたえています。

GOforIT 47

これで一区切りです。ここまでで、

Chromeの起動
AutoBizのサイトにアクセス
ユーザー名とパスワードを入れる
ログインボタンをクリック

という流れを自動処理できるのです。F5をクリックするとプログラムを実行できます。

マクロとはまた違いますが、似たところもあります。やってみると勉強になります。

M1チップのMacでPythonをやってみたいという方に参考にしていただければ。


【編集後記】
昨日は今日はじぶんの月次、HPメンテナンス。相続メルマガ発行など。HPはもう少し触っていく予定です。

【昨日の1日1新】
※「1日1新」→詳細はコチラ
Pythonでログイン
HPテーマ変更