概要
本記事では、Python と Selenium を利用して、求人サイト「51job」上で履歴書を定期的に自動更新する方法を解説します。ブラウザ操作を自動化することで、手動での更新作業を省略できます。
必要な環境
- Python 3.6 以上
- Selenium ライブラリ
- Chrome ブラウザと対応する ChromeDriver
- 51job のアカウント
Python と Selenium のセットアップ
まず、Python 公式サイトからインストーラーをダウンロードし、インストールします。インストール時に「Add Python to PATH」にチェックを入れてください。
次に、コマンドラインで以下のコマンドを実行し、Selenium をインストールします。
pip install selenium
ChromeDriver の準備
Chrome ブラウザのバージョンを確認し、それに合った ChromeDriver を 公式サイト から入手します。ダウンロードした chromedriver.exe は、Python のインストールディレクトリ内の Scripts フォルダに配置するか、任意のパスを通しておきます。
自動化スクリプトの作成
以下のコードは、ログインから履歴書の更新ボタンを押すまでの一連の操作を自動化します。ブラウザの起動オプションや待機時間を調整し、より安定して動作するように工夫しています。
import time
import random
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
LOGIN_URL = "https://www.51job.com"
USERNAME = "あなたのユーザー名"
PASSWORD = "あなたのパスワード"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-infobars")
chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(options=chrome_options)
wait = WebDriverWait(driver, 10)
driver.get(LOGIN_URL)
# ログインダイアログを表示
login_button = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "showLogin")))
login_button.click()
# ユーザー名とパスワードを入力
username_field = wait.until(EC.presence_of_element_located((By.ID, "loginname")))
username_field.send_keys(USERNAME)
password_field = driver.find_element(By.ID, "password")
password_field.send_keys(PASSWORD)
# ログイン実行
login_btn = wait.until(EC.element_to_be_clickable((By.ID, "login_btn")))
login_btn.click()
print("ログインが完了しました。")
# ランダム間隔で履歴書を更新
while True:
interval = random.randint(20, 40) # 秒単位で調整
time.sleep(interval)
refresh_btn = wait.until(EC.element_to_be_clickable((By.ID, "refreshresume")))
refresh_btn.click()
print(f"履歴書を更新しました: {time.strftime('%Y-%m-%d %H:%M:%S')}")
上記スクリプトでは、WebDriverWait を用いて要素が操作可能になるまで待機し、信頼性を高めています。また、更新間隔は 20〜40 秒の範囲でランダムに設定しています。サーバーへの負荷を考慮し、適度な間隔を保つことを推奨します。
実行と確認
スクリプトを実行すると、Chrome が起動して自動的にログインし、指定した間隔で履歴書の更新ボタンがクリックされます。コンソールには更新時刻が出力されます。長時間稼働させる場合は、ネットワーク環境や PC のスリープ設定に注意してください。
この手法は、Selenium の基本的な操作を理解するための良い練習にもなります。実際の利用時は、サイトの利用規約を確認し、適切な範囲で自動化を行ってください。