やりたいこと
Pythonのwebbrowserを使って、Webサイトに自動ログインしたいと思い
色々試行錯誤したので備忘録として残していきます。
環境
macOS high sierra 10.13.6
python Python 3.7.3
ブラウザを開く
web_open.py
import webbrowser
webbrowser.open("開きたいURL")
無事開きました。
ブラウザを指定したい場合はget()で指定するらしいです。
ログインする
キーボード入力をそのまま入力したいと思いpyautoguiを使用。
web_login1.py
import webbrowser
import pyautogui
import time
# ブラウザを開く
webbrowser.open("開きたいURL")
# 念の為スリープ
time.sleep(1)
# ログインIDとパスワードを格納
mail_address = "hoge"
passwd = "hoge"
# ログインIDを入力するボックスまで移動
pyautogui.press('enter')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.press('tab')
# メールアドレスを入力
for i in range(0,len(mail_address)):
pyautogui.press(mail_address[i])
# パスワード入力へ移動
pyautogui.press('tab')
# パスワードを入力
for i in range(0,len(passwd)):
pyautogui.press(passwd[i])
# ログイン
pyautogui.press('enter')
ここでメールアドレスに含まれる"@"が別の記号に置き換わってしまった。
windowsであればpyautoguiのファイルに色々追記すれば解決するらしいが
macOSの解決先は見当たらなかったので別の方法を検討。
pyperclipを使って解決
色々探してみたらpyperclipで解決できそう。
web_login2.py
import webbrowser
import pyautogui
import pyperclip
import time
webbrowser.open("開きたいURL")
# 念の為スリープ
time.sleep(1)
# ログインIDとパスワードを格納
mail_address = "hoge"
passwd = "hoge"
# ログインIDを入力するボックスまで移動
pyautogui.press('enter')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.press('tab')
# コピー
pyperclip.copy(mail_address)
# ペースト
pyautogui.hotkey("command","v")
# パスワード入力へ移動
pyautogui.press('tab')
# コピー
pyperclip.copy(passwd)
# ペースト
pyautogui.hotkey("command","v")
# ログイン
pyautogui.press('enter')
これをラズパイでやりたいけどlinuxでも動くのかな。