前提
以下の環境が構築されていることを前提とします。
※構築がまだの方はこちらの記事をご参照ください。
・python
・selenium
・chromeDriver
動作確認
まずは実際に軽く動かしてみましょう。
以下のファイルを作成し、ターミナルで実行してみましょう。
Google Chromeが起動したらOKです!
※初めて実行される場合は、エラーメッセージが出るかもしれません。その場合はこちらの記事を参考にしてみてください。30秒ほどで解決できます。
from selenium import webdriver
# Chromeブラウザを起動
browser = webdriver.Chrome()
基本的な書き方
例)ログイン画面にて、指定のユーザでログインする
from selenium import webdriver
# Chromeブラウザを起動
browser = webdriver.Chrome()
# 指定したドライバの要素が見つかるまでの待ち時間を設定(今回は10秒)
# 設定した待ち時間を越えても要素が見つからない場合は、Exceptionが発生
browser.implicitly_wait(10)
# 勤怠システムにアクセス
browser.get("https://******.jp/")
# → アクセス後、まずログインページに遷移される
# ログイン画面の各要素を取得
loginId = browser.find_element(By.ID, "login_id")
password = browser.find_element(By.ID, "login_password")
loginBtn = browser.find_element(By.ID, "login_button")
# ログインID、パスワード入力
loginId.send_keys("luk3G-SE00101")
password.send_keys("spider25")
# ログインボタン押下
loginBtn.click()
→ 無事ログインして、勤怠入力画面に遷移しました。
補足
seleniumは実行完了後、開いたChromeも自動で閉じる
もし終了後もChromeを開いた状態を保ちたければ、以下を追記する
import os
import signal
# ↓末尾に記載する!
# python処理終了後、chromeを開いたままにする
os.kill(browser.service.process.pid,signal.SIGTERM)
メッセージ
今回勤怠入力の画面操作については記載しておりませんが、基本的には同じような形で、画面要素を取得してフォーム入力やボタン操作をしていくことになります。
seleniumは、慣れると簡単!記事も豊富なので、記載方法がわからない箇所あれば検索してみましょう!
注意点
この手のスクレイピングという技術は、サイトによっては禁止されていたりするものもあるので、始める前に確認をしましょう。