はじめに
日々の業務で繰り返し行われる「定型作業」を自動化したいと考えるエンジニアは多いでしょう。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なしで軽量・高速に動作
- 定期レポート、価格監視、テスト自動化など応用範囲が広い
- サーバー上で無人実行できるため、業務効率化に直結
これから業務自動化を進めたい方は、まずは簡単な検索やデータ収集から始め、徐々にログイン・ダウンロード処理へと拡張していくとスムーズです。