Pythonを使って、サイトにログインすることができます。
M1チップのMacbook Airで試した事例をまとめてみました。
M1チップのMacでのPython環境をつくる
利用したパソコンはM1チップのMacBook Air
M1チップとIntelで異なる部分もあり、M1チップでやってみたことをお話します。
まずはPythonでプログラミングをする環境を用意する必要があります。
Pythonの準備
まずはPythonのソフトをインストールします。
こちらの公式サイトからダウンロードしましょう。
ダウンロード後、ファイルを開くとこのような画面が表示されますので、インストールしましょう。
FinderのアプリケーションからPythonのフォルダを見に行くと、このようなファイルができています。この中のIDLE(アイドル)というアプリをあとで使っていきます。
後述するHomebrewからもPython3をインストールすることもできます。わたしは先にやったので。
Terminal(ターミナル)を起動
MacのTerminalを検索して起動しましょう。Pythonを動かすために必要な環境のインストールをこのターミナルでやっていきます。
インストールしたので、最新のPythonになっているはずですが、最新にアップグレードする場合には、ターミナルに次のコマンドを入れて実行をします。
1 |
pip3 install -upgrade pip |
このような画面になれば、バージョンアップができています。
Homebrewをインストール
M1チップのMacでPythonを動かす場合、Intel版のMacとパス(保存先)が違います。
その設定をするためにHomebrewをインストールしました。
次にHomebrewのサイトにアクセスし、該当の部分をコピーし、
The Missing Package Manager for macOS (or Linux) — Homebrew
ターミナルに貼り付けて実行します。
しばらくすると、パスワードを聞かれます。Macのパスワードを入力しましょう。
このような画面になると、インストールが終わりです。
M1チップMac用にパスの設定変更
M1チップの場合、パス(接続先)が違うので、設定を変更しておく必要があります。
環境Pathを設定するには、ターミナルに次のようにコピーしましょう。「/Users/username/.zprofile」の部分は、それぞれ違うので、じぶんの設定に合わせる必要があります。
1 |
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/username/.zprofile |
では、ここに何を入れるか?ヒントはHomebrewのインストールが終わった画面の中にあります。
最後のほうで英語が苦手ながらなんとか訳してみると「次のステップとして、パス(接続先)を変えるために2つのコマンドを入力してちょ」と書いてあります。その画面に答えがあります。
この部分に置き換えて実行しましょう。
実行した後に引き続き、
1 |
eval "$(/opt/homebrew/bin/brew shellenv)" |
といれると、完了です。
インストールされているかを確認します。
1 |
brew -v |
と入力し、実行するとHomebrew 3.3.6といった表示になります。
これで初期設定は終わりです。なかなか敷居が高いです。
このあとは処理に応じてライブラリ(ソフトのイメージ)をインストールしていくことになります。
ブラウザを操作する準備
今回の事例は、サイトにログインするものです。
IDとパスワードを入力し、ログインのボタンをクリック。サイトにログインするという流れです。
それほど手間がかかるものでもないですが、人がやるよりは明らかに速いです。
Pythonでプログラミングすると、その後は.pyファイルをクリックするだけでログインできるようになります。
今度は、ネット上で入力したりクリックしたりするための準備です。
Seleniumをインストール
ネット上で操作するために、「Selenium」をインストールします。
ターミナルに
1 |
Pip3 install selenium |
と入力しましょう。Seleniumがインストールできます。
ChromeDriverをインストール
Google Chrome対応のWebドライバーをインストールします。
現状のGoogle Chromeのバージョンと同じタイプのものが必要になるので、まずはChromeのバージョンを確認する必要があります。
Chromeの設定からChromeについてをクリックすると、現在のバージョンがわかります。チェックすると「96」になっています。
Google Chromeのドライバーをこちらからダウンロードしましょう。
Chromeのバージョンにあった「96」をクリックし、
M1を選び、ダウンロード、解凍してから、ドライバーを
この後に紹介するPython用の「.py」のファイルと同じ場所に格納しましょう。
これらはGoogleChromeをブラウザとして使っていることが前提なので、Chromeのアプリも必要です。
なければダウンロードしておきましょう。(SafafiやFirefoxの場合には設定が変わります。)
このあとにようやく、Pythonを動かすコードを書いていきます。
AutoBizに自動ログイン
Pythonを動かすためのコードを書いていきます。
スポットライト検索でid…と入力するとIDLEというアプリを見つけることができます。起動しましょう。
画面はAlfredというアプリを入れているので、ちょっと表示が違いますが、スポットライトで大丈夫です。
Macランチャーアプリ『Alfred』で効率化へ3歩前進 ゲームメイクの起点は検索窓から – GO for IT 〜 税理士 植村 豪 Official Blog
起動するとこのような画面が表示されます。
この画面でcommand+Nをクリックすると、右側のような画面が表示されます。コードはこちらに書いていき、実行結果、エラーがあれば左の画面に表示されます。
コードを書くツールはjupiternotebookなどもありますが、今回はシンプルにIDLEで解説します。
まずは、IDLEの環境設定から、
文字サイズ、フォントを変更しておきましょう。
今回、IDLEで右側の画面に書いたコードはこのようなものです。これを解説します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# seleniumの読み込み
from selenium import webdriver
#Chromeを起動する
from selenium.webdriver.chrome import service as fs
chrome_service = fs.Service(executable_path='/Users/gouemura/Dropbox/Python/chromedriver')
browser = webdriver.Chrome(service=chrome_service)
#AutoBizにアクセス
url='https://76auto.biz/11111/admin/'
browser.get(url)
#ユーザー名の入力
elem_username=browser.find_element_by_name('username')
elem_username.send_keys('go1111')
#パスワードの入力
elem_password=browser.find_element_by_id('PASS')
elem_password.send_keys('gopass')
#ログインボタンをクリック
elem_login_btn=browser.find_element_by_name('submit')
elem_login_btn.click() |
ユーザーIDやパスワードは仮のものです。
Pythonを動かすコードの解説
まず最初のコードで先程インストールしたseleniumにあるwebドライバーを読み込んでいます。
これでブラウザを操作できるようになります。
次にChromeの起動です。
まず、そもそもの設定で解説しておきます。browserという変数を使って、先程インストールしたChromeドライバーを呼びだして、Chromeを起動しています。
「’/Users/gouemura/Dropbox/Python/chromedriver’」のようなパスやURL、文字は「’(Shift+7)」で囲む必要があります。
このパスを見つけるには、先程に格納したChromeドライバーのファイルを選択し、オプションキーを押しながら右クリックします。
そこでパスをコピーできます。上記はそれを貼り付けたもので、じぶんの環境のものに変更する必要があります。
これでChromeを起動することができますが、警告がでます。seleniumが新しくなり、書き方が変更になったとか。
それでこの部分を、
このような書き方に変えています。
このように書き換えて警告がでないようにしています。
次はサイトへのアクセス。サイトからurlをコピーして貼り付けます。上の行の「url」が変数。
すぐ下の「browser.get(url)」で引用しています。
最後は、サイトでのユーザー名とパスワードの入力、ログインボタンのクリック。
この動きをコードで書くために、場所を指定できるようなカギを見つける必要があります。(下記の’username’、’PASS’、’submit’の3つがそれです。)
ユーザー名の場合を例に。Chrome画面を表示した状態でF12を押すと、このような検証の画面になります。左上のマークをクリックすると、
要素を選べるようになります。ユーザー名にカーソルを当てた状態でクリックすると、
該当のHTMLが表示されます。
その中からidやnameなどを探しましょう。idはないので今回は「name=”username”」とあるので、nameを使うことにします。これがカギになります。
HTML表示からコピーして、
ここに入れます。elementとは要素。usernameという要素を見つけてちょということです。
elem usernameを変数として、次の行でsend_keys(‘任意のID’)として入力するように伝えています。
次はパスワード。同じようにHTMLから今度はidが見つかったので、idで設定をしてみます。id=”PASS”です。
今回はidで指定しているので、by_nameではなく、「element_by_id(‘PASS’)」にする必要があります。
今回は関係ないですが、もしnameで指定するなら「element_by_name(‘password’)」となります。
最後はボタン。要素にカーソルをあてると、
今回もidはなく、name=”submit”があったので、これを使います。
ということで。element_by_name(‘submit’)とし、その下で「element_login_btn.click()」として、クリックをするようにつたえています。
これで一区切りです。ここまでで、
Chromeの起動
AutoBizのサイトにアクセス
ユーザー名とパスワードを入れる
ログインボタンをクリック
という流れを自動処理できるのです。F5をクリックするとプログラムを実行できます。
マクロとはまた違いますが、似たところもあります。やってみると勉強になります。
M1チップのMacでPythonをやってみたいという方に参考にしていただければ。
【編集後記】
昨日は今日はじぶんの月次、HPメンテナンス。相続メルマガ発行など。HPはもう少し触っていく予定です。
【昨日の1日1新】
※「1日1新」→詳細はコチラ
Pythonでログイン
HPテーマ変更