5
8

More than 3 years have passed since last update.

Python_Webbrowserを使ってWebサイトを操作

Last updated at Posted at 2019-11-16

やりたいこと

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でも動くのかな。

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8