• ホーム
  • Selenium…

Seleniumを使ってログインが必要なサイトへアクセスする

ビジネスを運営していると、毎日確認が必要な管理画面って意外と多いものです。例えば

  • SNSアカウントの閲覧数や反応数の確認
  • ECサイトの売上状況や在庫状況のチェック
  • アクセス解析ツールでのユーザー行動分析
  • 予約システムの新規予約確認

これらの作業、毎日手動で行うのは意外と大変ですよね。今回は、そんな定期的な管理画面チェックをPythonで自動化する方法をご紹介します。

なぜ自動化が必要か?

日々の管理画面チェックには、いくつかの課題があります:

  1. 作業自体は単純でも、毎日となると大きな時間を取られる
  2. 人の手作業なので、見落としや入力ミスのリスクがある
  3. データを別の形式で保存・集計したい場合、さらに手間がかかる

自動化によって、これらの課題を一気に解決できます。

今回使用する技術について

今回は、Webブラウザの操作を自動化できる「Selenium」というツールを使用します。このツールを使うと、普段私たちが行っているブラウザ操作(ログイン、ページ遷移、データの取得など)をプログラムで自動的に行うことができます。

具体的な実装例

以下のコードは、管理画面へのログイン処理を自動化する基本的な例です。この処理を応用することで、ログイン後の様々なデータ取得や操作を自動化できます。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

loginPageUrl = "https://example.com/login"

email = "your-email@example.com"
password = "your password"

options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("--no-sandbox")
options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome(options=options)

driver.get(loginPageUrl)

# メールアドレスを入力します
email_input = driver.find_element(By.NAME, "email")
email_input.send_keys(email)

# パスワードを入力します
password_input = driver.find_element(By.NAME, "password")
password_input.send_keys(password)

# ログインボタンをクリックします
submit_button = driver.find_element(By.XPATH, "//button")
submit_button.click()

# ページの読み込みを待つ(最大10秒)
WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.TAG_NAME, "body"))
)

# ログイン後のページのURLを取得し、ログインできたか確認しています。
currentUrl = driver.current_url
print(currentUrl)

コードの説明

このコードが行っていることを、順を追って説明します:

  1. 準備段階:必要な設定を行います
    • ブラウザをバックグラウンドで動作させる設定
    • セキュリティ関連の設定
  2. ログイン処理
    • 管理画面のログインページにアクセス
    • メールアドレスとパスワードを入力
    • ログインボタンをクリック
  3. 完了確認
    • ページの読み込みを待機
    • 正しくログインできたか確認

この自動化で何ができる?

このコードを基本として、以下のような業務を自動化できます:

  • SNSの閲覧データを毎日自動で収集し、Excelにまとめる
  • ECサイトの売上データを自動取得し、日次レポートを作成
  • 複数の管理画面のデータを横断的に収集・分析
  • 在庫数の推移を監視し、一定数を下回ったら通知を送る

まとめ

私たちは、クライアント様の業務効率化のために、このような自動化の仕組みを提供しています。毎日の定型作業を自動化することで、より創造的で価値の高い業務に時間を使うことができます。

自動化に関するご相談や、お客様の業務に合わせたカスタマイズについても、お気軽にご相談ください。


お問い合わせ