前回はブラウザのスクロールまで行いました
今回はブラウザのログイン画面から自動ログインに挑戦
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
◇ソースコード
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
username=('id')#ID or メール or 携帯番号
password=('password')#パスワード
browser = webdriver.Chrome()
browser.get('https://login.yahoo.co.jp/config/login?.src=www&.done=https://www.yahoo.co.jp')
time.sleep(10)
user_name=browser.find_element_by_id('username')
user_name.send_keys(username)
btn=browser.find_element_by_id('btnNext')
btn.click()
time.sleep(5)
psw=browser.find_element_by_id('passwd')
psw.send_keys(password)
logbt=browser.find_element_by_id('btnSubmit')
logbt.click()
ソースコードのなかみを説明します
1、必要なライブラリのインポート
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
始めの2行はselenium、ブラウザの操縦に使う
timeは、確実にプログラムを実行するために待ち時間を作るために使用
プログラムで動いているので、ブラウザを完全に読み込んでいなくても次の動作に進んでしまう為、エラーになってしまうことがある。
人が操作していれば入力出来るまで待ったり、ボタンが現れたら押したりするが、それを単純なプログラムで進めるめにtimeを使用する
2、IDとパスワードを変数に格納
username=('id')#ID or メール or 携帯番号
password=('password')#パスワード
usename変数にログインID or メール or 携帯番号を格納
password変数にパスワードを格納
3、ブラウザを開く
browser = webdriver.Chrome()
browser.get('https://login.yahoo.co.jp/config/login?.src=www&.done=https://www.yahoo.co.jp')
今回はchromeでyahooのログインページを開きます
4、ブラウザが完全に開くまでの時間待つ
time.sleep(10)
ここでは10秒待ちます
sleepの引数が待ち時間の秒数になります
5、タグを指定して操作
user_name=browser.find_element_by_id('username')
user_name.send_keys(username)
btn=browser.find_element_by_id('btnNext')
btn.click()
browser.find_element_by_id(‘username’)
id (‘ ‘) 👈この中に操作したいタグを探して入れます
・探し方
IDを入力したいブラウザの画面を開いて、WindowsならF12を押して開発者ツールを開きます
HTMLのプログラムにカーソルを合わせていき、操作したい場所が青くなっていたらどんどん階層を下っていく
最終的に操作したい場所だけが青くなるところまで階層を下る
この”username”を id (‘ ‘) のなかに入れます
send_keys()で引数をキーボード入力できます
テキスト入力したらボタンを押します
今度はボタンのタグを探します
このボタンのタグは”btnNext”
click()でクリックしてくれます
ここまででテキスト入力、ボタンクリック
これでログインに必要な動作が出来るようになりました
パスワードはこれと同じことをすればログインにたどり着きます。
以上seleniumによるログインのやり方でした
―関連記事―