Python
WordPress
Selenium
PhantomJS
cloud9

PythonでWordpressの投稿を自動化してみた

More than 1 year has passed since last update.

やりたいこと

  • PythonからWordpressの投稿を行う

環境

  • Cloud9
  • Python3
  • PhontomJS *
  • Selenium *

導入は[Python データ分析入門マニュアル] > [スクレイピングをPythonでするときは、Cloud9・Selenium・Herokuで決まり!誰でもできるスクレイピングマニュアル]を参照してください。こちらにCloud9上でSelenium環境を作る方法などをすべてまとめています。

スクレイピングをPythonでするときは、Cloud9・Selenium・Herokuで決まり!誰でもできるスクレイピングマニュアル
https://review-of-my-life.blogspot.jp/2017/09/selenium-5-minutes-setup-on-cloud9.html

実装

  • ワードプレスのログイン画面に移動
  • IDとパスワードを入力
  • 送信ボタンを入力
  • 新規投稿画面に移動
  • タイトルと内容を入力
  • 下書き保存をクリック

スクリプト

wordpress.py
from selenium import webdriver #seleniumのimport
import time

browser = webdriver.PhantomJS() 
loginURL = "http://yoursite.com/wp/wp-login.php" #yoursite.comにはあなたのサイトのアドレスを書いてください
browser.get(loginURL)
time.sleep(3)
print(browser.title) # "あなたのサイト名 ‹ ログイン"と表示される

#ログイン

username = "" #あなたのユーザー名を入れてください
password = "" #あなたのパスワードを入れてください

browser.find_element_by_css_selector("#user_login").send_keys(username)
browser.find_element_by_xpath("//*[@id='user_pass']").send_keys(password)
browser.find_element_by_css_selector("#wp-submit").click()
time.sleep(3) # waiting for sign in 

print(browser.title) #"ダッシュボード ‹ あなたのサイト名 — WordPress"と表示される

#投稿(下書き)

browser.get("http://yoursite.com/wp/wp-admin/post-new.php")
time.sleep(3) # waiting for sign in 
print(browser.title) #"新規投稿を追加 ‹ あなたのサイト名 — WordPress"と表示される

title = "Test"
content = "test post"
browser.find_element_by_css_selector("#title").send_keys(title)
browser.find_element_by_css_selector("#content_ifr").send_keys(content)
browser.find_element_by_css_selector("#save-post").click
time.sleep(3) #waiting for post

詳細

  • 手順等は省略しているので、詳細は以下の記事を読んでください。

https://review-of-my-life.blogspot.jp/2017/11/python-wordpress.html