業務自動化には欠かせない:Python × Selenium × Headless Chrome 実践テク

はじめに

日々の業務で繰り返し行われる「定型作業」を自動化したいと考えるエンジニアは多いでしょう。Webブラウザを使った操作を自動化する定番ツールといえば Selenium。さらに、GUIを表示せずに高速で動作させる Headless Chrome を組み合わせることで、業務効率を大幅に改善できます。

この記事では、Python × Selenium × Headless Chrome を活用した 業務自動化の実践テクニック を解説します。


1. Selenium × Headless Chrome を使うメリット

通常のブラウザ操作と比較して、Headless モードには以下の利点があります。

  • 速度向上:GUI描画が不要のため、高速に動作
  • サーバー実行可能:X Window環境がないLinuxサーバーでも動作
  • 安定した自動化:テストや定期処理に向いている

特に「毎日決まったWebページからデータを取得してExcelにまとめる」といった業務には最適です。


2. 事前準備

以下の環境を整えておきましょう。

必要パッケージ

pip install selenium

ChromeDriver の準備

  • Google Chrome とバージョンが一致する ChromeDriver をダウンロード
  • もしくは webdriver-manager を使えば自動で管理できます
pip install webdriver-manager

3. Headless Chrome を使った基本コード

以下のサンプルは、Googleで「Python Selenium」と検索し、検索結果のタイトルを取得する例です。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

# Chromeのオプション設定
options = Options()
options.add_argument("--headless")  # GUIを表示しない
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")

# ドライバー起動
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

# Googleで検索
driver.get("https://www.google.com/")
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python Selenium")
search_box.submit()

# 検索結果タイトルを取得
titles = driver.find_elements(By.CSS_SELECTOR, "h3")
for t in titles[:5]:
    print(t.text)

driver.quit()

ポイント

  • options.add_argument("--headless") でヘッドレスモード
  • サーバー環境では --no-sandbox--disable-dev-shm-usage を併用すると安定

4. 業務自動化の実践例

4.1 定期レポート生成

  • 社内ポータルサイトにログイン
  • 日次データをダウンロード
  • pandasで整形 → Excel出力
  • cron や Windows タスクスケジューラで毎日実行

4.2 ECサイトの価格監視

  • 商品ページを自動巡回
  • 価格要素を抽出してCSVに記録
  • 一定価格以下になればメール通知

4.3 QA・テスト自動化

  • フォーム入力やボタン押下を自動で行い、画面遷移が正しいか検証
  • Selenium Grid と組み合わせれば CI/CD パイプラインに組み込み可能

5. 安定稼働のためのTips

  • 要素取得は明示的待機(WebDriverWait)を使う
    → 動的サイトでも安定動作
  • 例外処理を入れる
    → ログ保存してリトライできるようにする
  • ログ保存+スクリーンショット
    → トラブル時の調査が容易になる

まとめ

Python × Selenium × Headless Chrome を活用すれば、
「人手でやっていたブラウザ操作」を 完全自動化 できます。

  • GUIなしで軽量・高速に動作
  • 定期レポート、価格監視、テスト自動化など応用範囲が広い
  • サーバー上で無人実行できるため、業務効率化に直結

これから業務自動化を進めたい方は、まずは簡単な検索やデータ収集から始め、徐々にログイン・ダウンロード処理へと拡張していくとスムーズです。

タイトルとURLをコピーしました