ビジネスを運営していると、毎日確認が必要な管理画面って意外と多いものです。例えば
- SNSアカウントの閲覧数や反応数の確認
- ECサイトの売上状況や在庫状況のチェック
- アクセス解析ツールでのユーザー行動分析
- 予約システムの新規予約確認
これらの作業、毎日手動で行うのは意外と大変ですよね。今回は、そんな定期的な管理画面チェックをPythonで自動化する方法をご紹介します。
なぜ自動化が必要か?
日々の管理画面チェックには、いくつかの課題があります:
- 作業自体は単純でも、毎日となると大きな時間を取られる
- 人の手作業なので、見落としや入力ミスのリスクがある
- データを別の形式で保存・集計したい場合、さらに手間がかかる
自動化によって、これらの課題を一気に解決できます。
今回使用する技術について
今回は、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)
コードの説明
このコードが行っていることを、順を追って説明します:
- 準備段階:必要な設定を行います
- ブラウザをバックグラウンドで動作させる設定
- セキュリティ関連の設定
- ログイン処理:
- 管理画面のログインページにアクセス
- メールアドレスとパスワードを入力
- ログインボタンをクリック
- 完了確認:
- ページの読み込みを待機
- 正しくログインできたか確認
この自動化で何ができる?
このコードを基本として、以下のような業務を自動化できます:
- SNSの閲覧データを毎日自動で収集し、Excelにまとめる
- ECサイトの売上データを自動取得し、日次レポートを作成
- 複数の管理画面のデータを横断的に収集・分析
- 在庫数の推移を監視し、一定数を下回ったら通知を送る
まとめ
私たちは、クライアント様の業務効率化のために、このような自動化の仕組みを提供しています。毎日の定型作業を自動化することで、より創造的で価値の高い業務に時間を使うことができます。
自動化に関するご相談や、お客様の業務に合わせたカスタマイズについても、お気軽にご相談ください。