Python Selenium WordPress フリー・オープンソース

【自動】SeleniumでWordPressのログインから新規投稿、投稿一覧表示までを自動化したコード

WordPressでブログを作っていると、記事を書く度に、

  1. ブラウザ起動
  2. ユーザー名入力
  3. パスワード入力
  4. ログインボタンをクリック
  5. 新規投稿画面(投稿一覧画面)を表示

という5つの手順を毎回操作しますよね。

これって面倒じゃないですか?

私はめちゃくちゃ面倒です!!!

というわけで、Seleniumを使って

  • ブラウザ起動 ~ 新規投稿画面
  • ブラウザ起動 ~ 投稿一覧画面

までを自動化してみました。

自動化したおかげで、ダブルクリック1回で投稿画面まで表示されるようになったんで、めちゃくちゃストレスフリーです(^O^)

▼自動化後の操作はこちらの動画をご覧ください▼

PC環境は

  • Windows11
  • Python 3.12.6
  • Selenium 4.25.0
  • Google Chrome

です。

WindowsSeleniumをインストールする方法はこちらです。

投稿者「みか」自己紹介

  • パソコンとデータベースが大好き
  • 自社でネットワーク・システム・機器管理、Webサイト構築
  • 自社向けのシステムをMicrosoft AccessやPHPで多数構築
  • Excelでの作業はVBAを使って効率化
  • ロックバンド「VARS」でベース担当
  • 「VARS」のWebサイト、ブログも構築
  • 「VARS」のライブを観に来てね!https://vasofatum.jp/live/

SeleniumでWordPress自動ログインコード

①ブラウザ起動 ~ 新規投稿画面

ファイル名: blog_new.py

23、45行目: ブログドメイン = 自分のブログドメイン

30行目: xxxxxxxxxx = ログイン用のユーザー名

34行目: zzzzzzzzzz = ログイン用パスワード

ユーザー名とパスワードの入力が早すぎて失敗することがあるので、32行目と36行目で1秒待っています。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

chrome_options = Options()
# ブラウザを開いたままオプション
chrome_options.add_experimental_option("detach", True)
# 自動テストの文字非表示オプション
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])

driver = webdriver.Chrome(options=chrome_options)

#ウインドウを最大化する
driver.maximize_window()

#待機時間設定
wait = WebDriverWait(driver=driver, timeout=20)

# ブログ開く
url = "https://ブログドメイン/wp-login.php"
driver.get(url)
# ページが完全に読み込まれるまで待機
wait.until(EC.presence_of_all_elements_located)

# ID、password入力
txt_id = driver.find_element(By.ID, "user_login")
txt_id.send_keys("xxxxxxxxxx")
# 念のため1秒待つ
time.sleep(1)
txt_pass = driver.find_element(By.ID, "user_pass")
txt_pass.send_keys("zzzzzzzzzz")
# 念のため1秒待つ
time.sleep(1)

# ログインクリック
login_btn = driver.find_element(By.ID, "wp-submit")
login_btn.click()
# ページが完全に読み込まれるまで待機
wait.until(EC.presence_of_all_elements_located)

# 新規投稿に画面遷移
driver.get("https://ブログドメイン/wp-admin/post-new.php")
# ページが完全に読み込まれるまで待機
wait.until(EC.presence_of_all_elements_located)

②ブラウザ起動 ~ 投稿一覧画面

ファイル名: blog_list.py

23行目: ブログドメイン = 自分のブログドメイン

30行目: xxxxxxxxxx = ログイン用のユーザー名

34行目: zzzzzzzzzz = ログイン用パスワード

ユーザー名とパスワードの入力が早すぎて失敗することがあるので、32行目と36行目で1秒待っています。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

chrome_options = Options()
# ブラウザを開いたままオプション
chrome_options.add_experimental_option("detach", True)
# 自動テストの文字非表示オプション
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])

driver = webdriver.Chrome(options=chrome_options)

#ウインドウを最大化する
driver.maximize_window()

#待機時間設定
wait = WebDriverWait(driver=driver, timeout=20)

# ブログ開く
url = "https://ブログドメイン/wp-login.php"
driver.get(url)
# ページが完全に読み込まれるまで待機
wait.until(EC.presence_of_all_elements_located)

# ID、password入力
txt_id = driver.find_element(By.ID, "user_login")
txt_id.send_keys("xxxxxxxxxx")
# 念のため1秒待つ
time.sleep(1)
txt_pass = driver.find_element(By.ID, "user_pass")
txt_pass.send_keys("zzzzzzzzzz")
# 念のため1秒待つ
time.sleep(1)

# ログインクリック
login_btn = driver.find_element(By.ID, "wp-submit")
login_btn.click()
# ページが完全に読み込まれるまで待機
wait.until(EC.presence_of_all_elements_located)

# Postsクリック
posts_btn = driver.find_element(By.ID, "menu-posts")
posts_btn.click()
# ページが完全に読み込まれるまで待機
wait.until(EC.presence_of_all_elements_located)

-Python, Selenium, WordPress, フリー・オープンソース
-, , ,